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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/admin/BackgroundTaskRoutes.js +20 -13
  2. package/admin/BackgroundTaskRoutes.js.map +1 -1
  3. package/admin/BackgroundTasks.js +9 -0
  4. package/admin/BackgroundTasks.js.map +1 -1
  5. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.d.ts +12 -0
  6. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js +40 -0
  7. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js.map +1 -0
  8. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.d.ts +11 -0
  9. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js +18 -0
  10. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js.map +1 -0
  11. package/admin/features/getBackgroundTaskSettings/abstractions.d.ts +15 -0
  12. package/admin/features/getBackgroundTaskSettings/abstractions.js +6 -0
  13. package/admin/features/getBackgroundTaskSettings/abstractions.js.map +1 -0
  14. package/admin/features/getBackgroundTaskSettings/feature.d.ts +3 -0
  15. package/admin/features/getBackgroundTaskSettings/feature.js +19 -0
  16. package/admin/features/getBackgroundTaskSettings/feature.js.map +1 -0
  17. package/admin/features/getBackgroundTaskSettings/index.d.ts +3 -0
  18. package/admin/features/getBackgroundTaskSettings/index.js +2 -0
  19. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
  20. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
  21. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
  22. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
  23. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
  24. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  25. package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
  26. package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
  27. package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
  28. package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
  29. package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
  30. package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
  31. package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
  32. package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
  33. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
  34. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
  35. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
  36. package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
  37. package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
  38. package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
  39. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
  40. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
  41. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
  42. package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
  43. package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
  44. package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
  45. package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
  46. package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
  47. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +2 -1
  48. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -1
  49. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
  50. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
  51. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
  52. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
  53. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
  54. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
  55. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +53 -35
  56. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
  57. package/admin/routes.d.ts +1 -0
  58. package/admin/routes.js +4 -0
  59. package/admin/routes.js.map +1 -1
  60. package/admin/shared/types.d.ts +3 -0
  61. package/api/context.d.ts +2 -0
  62. package/api/context.js +66 -0
  63. package/api/context.js.map +1 -0
  64. package/api/crud/TaskLogPrivateModel.d.ts +9 -0
  65. package/api/crud/TaskLogPrivateModel.js +40 -0
  66. package/api/crud/TaskLogPrivateModel.js.map +1 -0
  67. package/api/crud/TaskPrivateModel.d.ts +9 -0
  68. package/api/crud/TaskPrivateModel.js +55 -0
  69. package/api/crud/TaskPrivateModel.js.map +1 -0
  70. package/api/crud/cleanupTaskSubtree.d.ts +8 -0
  71. package/api/crud/cleanupTaskSubtree.js +62 -0
  72. package/api/crud/cleanupTaskSubtree.js.map +1 -0
  73. package/api/crud/crud.tasks.d.ts +2 -0
  74. package/api/crud/crud.tasks.js +318 -0
  75. package/api/crud/crud.tasks.js.map +1 -0
  76. package/api/crud/definition.tasks.d.ts +2 -0
  77. package/api/crud/definition.tasks.js +17 -0
  78. package/api/crud/definition.tasks.js.map +1 -0
  79. package/api/crud/service.tasks.d.ts +2 -0
  80. package/api/crud/service.tasks.js +130 -0
  81. package/api/crud/service.tasks.js.map +1 -0
  82. package/api/decorators/RunnableTaskDecorator.d.ts +32 -0
  83. package/api/decorators/RunnableTaskDecorator.js +69 -0
  84. package/api/decorators/RunnableTaskDecorator.js.map +1 -0
  85. package/api/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
  86. package/api/decorators/SelfCleaningTaskDecorator.js +84 -0
  87. package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -0
  88. package/api/domain/BackgroundTaskSettings.d.ts +3 -0
  89. package/api/domain/BackgroundTaskSettings.js +0 -0
  90. package/api/domain/constants.d.ts +3 -0
  91. package/api/domain/constants.js +6 -0
  92. package/api/domain/constants.js.map +1 -0
  93. package/api/domain/errors.d.ts +57 -0
  94. package/api/domain/errors.js +101 -0
  95. package/api/domain/errors.js.map +1 -0
  96. package/api/events/TaskAfterCreateEvent.d.ts +6 -0
  97. package/api/events/TaskAfterCreateEvent.js +13 -0
  98. package/api/events/TaskAfterCreateEvent.js.map +1 -0
  99. package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
  100. package/api/events/TaskAfterDeleteEvent.js +13 -0
  101. package/api/events/TaskAfterDeleteEvent.js.map +1 -0
  102. package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
  103. package/api/events/TaskAfterUpdateEvent.js +13 -0
  104. package/api/events/TaskAfterUpdateEvent.js.map +1 -0
  105. package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
  106. package/api/events/TaskBeforeCreateEvent.js +13 -0
  107. package/api/events/TaskBeforeCreateEvent.js.map +1 -0
  108. package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
  109. package/api/events/TaskBeforeDeleteEvent.js +13 -0
  110. package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
  111. package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
  112. package/api/events/TaskBeforeUpdateEvent.js +13 -0
  113. package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
  114. package/api/events/abstractions.d.ts +53 -0
  115. package/api/events/abstractions.js +10 -0
  116. package/api/events/abstractions.js.map +1 -0
  117. package/api/events/index.d.ts +7 -0
  118. package/api/events/index.js +7 -0
  119. package/api/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
  120. package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
  121. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  122. package/api/features/AbortTask/abstractions.d.ts +25 -0
  123. package/api/features/AbortTask/abstractions.js +5 -0
  124. package/api/features/AbortTask/abstractions.js.map +1 -0
  125. package/api/features/AbortTask/feature.d.ts +5 -0
  126. package/api/features/AbortTask/feature.js +12 -0
  127. package/api/features/AbortTask/feature.js.map +1 -0
  128. package/api/features/AbortTask/index.d.ts +2 -0
  129. package/api/features/AbortTask/index.js +2 -0
  130. package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
  131. package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
  132. package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
  133. package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
  134. package/api/features/BackgroundTaskPermissions/feature.js +7 -0
  135. package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
  136. package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
  137. package/api/features/BackgroundTaskPermissions/index.js +2 -0
  138. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
  139. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
  140. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
  141. package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
  142. package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
  143. package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
  144. package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
  145. package/api/features/CleanupTaskSubtree/index.js +2 -0
  146. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
  147. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +60 -0
  148. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
  149. package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
  150. package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
  151. package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
  152. package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
  153. package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
  154. package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
  155. package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
  156. package/api/features/GetBackgroundTaskSettings/index.js +2 -0
  157. package/api/features/GetTask/GetTaskUseCase.d.ts +9 -0
  158. package/api/features/GetTask/GetTaskUseCase.js +11 -0
  159. package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
  160. package/api/features/GetTask/abstractions.d.ts +10 -0
  161. package/api/features/GetTask/abstractions.js +5 -0
  162. package/api/features/GetTask/abstractions.js.map +1 -0
  163. package/api/features/GetTask/feature.d.ts +5 -0
  164. package/api/features/GetTask/feature.js +12 -0
  165. package/api/features/GetTask/feature.js.map +1 -0
  166. package/api/features/GetTask/index.d.ts +2 -0
  167. package/api/features/GetTask/index.js +2 -0
  168. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  169. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +27 -0
  170. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  171. package/api/features/GetTaskDefinition/abstractions.d.ts +17 -0
  172. package/api/features/GetTaskDefinition/abstractions.js +5 -0
  173. package/api/features/GetTaskDefinition/abstractions.js.map +1 -0
  174. package/api/features/GetTaskDefinition/feature.d.ts +4 -0
  175. package/api/features/GetTaskDefinition/feature.js +11 -0
  176. package/api/features/GetTaskDefinition/feature.js.map +1 -0
  177. package/api/features/GetTaskDefinition/index.d.ts +2 -0
  178. package/api/features/GetTaskDefinition/index.js +2 -0
  179. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  180. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
  181. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  182. package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  183. package/api/features/ListTaskDefinitions/abstractions.js +5 -0
  184. package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
  185. package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
  186. package/api/features/ListTaskDefinitions/feature.js +11 -0
  187. package/api/features/ListTaskDefinitions/feature.js.map +1 -0
  188. package/api/features/ListTaskDefinitions/index.d.ts +2 -0
  189. package/api/features/ListTaskDefinitions/index.js +2 -0
  190. package/api/features/ListTasks/ListTasksUseCase.d.ts +9 -0
  191. package/api/features/ListTasks/ListTasksUseCase.js +11 -0
  192. package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
  193. package/api/features/ListTasks/abstractions.d.ts +13 -0
  194. package/api/features/ListTasks/abstractions.js +5 -0
  195. package/api/features/ListTasks/abstractions.js.map +1 -0
  196. package/api/features/ListTasks/feature.d.ts +5 -0
  197. package/api/features/ListTasks/feature.js +12 -0
  198. package/api/features/ListTasks/feature.js.map +1 -0
  199. package/api/features/ListTasks/index.d.ts +2 -0
  200. package/api/features/ListTasks/index.js +2 -0
  201. package/api/features/TaskController/TaskController.d.ts +49 -0
  202. package/api/features/TaskController/TaskController.js +71 -0
  203. package/api/features/TaskController/TaskController.js.map +1 -0
  204. package/api/features/TaskController/augmentation.d.ts +60 -0
  205. package/api/features/TaskController/augmentation.js +0 -0
  206. package/api/features/TaskController/index.d.ts +2 -0
  207. package/api/features/TaskController/index.js +2 -0
  208. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  209. package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
  210. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  211. package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
  212. package/api/features/TaskExecutionContext/abstractions.js +5 -0
  213. package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
  214. package/api/features/TaskExecutionContext/feature.d.ts +4 -0
  215. package/api/features/TaskExecutionContext/feature.js +11 -0
  216. package/api/features/TaskExecutionContext/feature.js.map +1 -0
  217. package/api/features/TaskExecutionContext/index.d.ts +1 -0
  218. package/api/features/TaskExecutionContext/index.js +1 -0
  219. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
  220. package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
  221. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  222. package/api/features/TriggerTask/abstractions.d.ts +28 -0
  223. package/api/features/TriggerTask/abstractions.js +5 -0
  224. package/api/features/TriggerTask/abstractions.js.map +1 -0
  225. package/api/features/TriggerTask/feature.d.ts +5 -0
  226. package/api/features/TriggerTask/feature.js +12 -0
  227. package/api/features/TriggerTask/feature.js.map +1 -0
  228. package/api/features/TriggerTask/index.d.ts +2 -0
  229. package/api/features/TriggerTask/index.js +2 -0
  230. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
  231. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +64 -0
  232. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
  233. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
  234. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
  235. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  236. package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
  237. package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
  238. package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
  239. package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
  240. package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
  241. package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
  242. package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
  243. package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
  244. package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
  245. package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
  246. package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
  247. package/api/global.d.ts +1 -0
  248. package/api/global.js +1 -0
  249. package/api/graphql/BackgroundTaskSettingsSchema.d.ts +2 -0
  250. package/api/graphql/BackgroundTaskSettingsSchema.js +84 -0
  251. package/api/graphql/BackgroundTaskSettingsSchema.js.map +1 -0
  252. package/api/graphql/checkPermissions.d.ts +7 -0
  253. package/api/graphql/checkPermissions.js +21 -0
  254. package/api/graphql/checkPermissions.js.map +1 -0
  255. package/api/graphql/index.d.ts +2 -0
  256. package/api/graphql/index.js +302 -0
  257. package/api/graphql/index.js.map +1 -0
  258. package/api/graphql/utils.d.ts +9 -0
  259. package/api/graphql/utils.js +20 -0
  260. package/api/graphql/utils.js.map +1 -0
  261. package/api/handler/index.d.ts +6 -0
  262. package/api/handler/index.js +55 -0
  263. package/api/handler/index.js.map +1 -0
  264. package/api/handler/register.d.ts +1 -0
  265. package/api/handler/register.js +15 -0
  266. package/api/handler/register.js.map +1 -0
  267. package/api/handler/types.d.ts +23 -0
  268. package/api/handler/types.js +0 -0
  269. package/api/index.d.ts +5 -0
  270. package/api/index.js +5 -0
  271. package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
  272. package/api/models/BackgroundTaskSettingsModel.js +27 -0
  273. package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
  274. package/api/permissions.d.ts +12 -0
  275. package/api/permissions.js +22 -0
  276. package/api/permissions.js.map +1 -0
  277. package/api/plugins/TaskServicePlugin.d.ts +19 -0
  278. package/api/plugins/TaskServicePlugin.js +13 -0
  279. package/api/plugins/TaskServicePlugin.js.map +1 -0
  280. package/api/plugins/index.d.ts +1 -0
  281. package/api/plugins/index.js +1 -0
  282. package/api/response/DatabaseResponse.d.ts +12 -0
  283. package/api/response/DatabaseResponse.js +127 -0
  284. package/api/response/DatabaseResponse.js.map +1 -0
  285. package/api/response/Response.d.ts +14 -0
  286. package/api/response/Response.js +91 -0
  287. package/api/response/Response.js.map +1 -0
  288. package/api/response/ResponseAbortedResult.d.ts +9 -0
  289. package/api/response/ResponseAbortedResult.js +12 -0
  290. package/api/response/ResponseAbortedResult.js.map +1 -0
  291. package/api/response/ResponseContinueResult.d.ts +17 -0
  292. package/api/response/ResponseContinueResult.js +16 -0
  293. package/api/response/ResponseContinueResult.js.map +1 -0
  294. package/api/response/ResponseDoneResult.d.ts +11 -0
  295. package/api/response/ResponseDoneResult.js +14 -0
  296. package/api/response/ResponseDoneResult.js.map +1 -0
  297. package/api/response/ResponseErrorResult.d.ts +10 -0
  298. package/api/response/ResponseErrorResult.js +13 -0
  299. package/api/response/ResponseErrorResult.js.map +1 -0
  300. package/api/response/TaskResponse.d.ts +12 -0
  301. package/api/response/TaskResponse.js +53 -0
  302. package/api/response/TaskResponse.js.map +1 -0
  303. package/api/response/abstractions/Response.d.ts +25 -0
  304. package/api/response/abstractions/Response.js +0 -0
  305. package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
  306. package/api/response/abstractions/ResponseAbortedResult.js +0 -0
  307. package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
  308. package/api/response/abstractions/ResponseBaseResult.js +0 -0
  309. package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
  310. package/api/response/abstractions/ResponseContinueResult.js +0 -0
  311. package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
  312. package/api/response/abstractions/ResponseDoneResult.js +0 -0
  313. package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
  314. package/api/response/abstractions/ResponseErrorResult.js +0 -0
  315. package/api/response/abstractions/TaskResponse.d.ts +16 -0
  316. package/api/response/abstractions/TaskResponse.js +0 -0
  317. package/api/response/abstractions/index.d.ts +7 -0
  318. package/api/response/abstractions/index.js +7 -0
  319. package/api/response/index.d.ts +7 -0
  320. package/api/response/index.js +7 -0
  321. package/api/runner/TaskControl.d.ts +14 -0
  322. package/api/runner/TaskControl.js +173 -0
  323. package/api/runner/TaskControl.js.map +1 -0
  324. package/api/runner/TaskEventValidation.d.ts +5 -0
  325. package/api/runner/TaskEventValidation.js +20 -0
  326. package/api/runner/TaskEventValidation.js.map +1 -0
  327. package/api/runner/TaskManager.d.ts +11 -0
  328. package/api/runner/TaskManager.js +81 -0
  329. package/api/runner/TaskManager.js.map +1 -0
  330. package/api/runner/TaskManagerStore.d.ts +40 -0
  331. package/api/runner/TaskManagerStore.js +109 -0
  332. package/api/runner/TaskManagerStore.js.map +1 -0
  333. package/api/runner/TaskRunner.d.ts +25 -0
  334. package/api/runner/TaskRunner.js +55 -0
  335. package/api/runner/TaskRunner.js.map +1 -0
  336. package/api/runner/abstractions/TaskControl.d.ts +10 -0
  337. package/api/runner/abstractions/TaskControl.js +0 -0
  338. package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
  339. package/api/runner/abstractions/TaskEventValidation.js +0 -0
  340. package/api/runner/abstractions/TaskManager.d.ts +5 -0
  341. package/api/runner/abstractions/TaskManager.js +0 -0
  342. package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
  343. package/api/runner/abstractions/TaskManagerStore.js +0 -0
  344. package/api/runner/abstractions/TaskRunner.d.ts +13 -0
  345. package/api/runner/abstractions/TaskRunner.js +0 -0
  346. package/api/runner/abstractions/index.d.ts +5 -0
  347. package/api/runner/abstractions/index.js +5 -0
  348. package/api/runner/index.d.ts +1 -0
  349. package/api/runner/index.js +1 -0
  350. package/api/service/EventBridgeEventTransportPlugin.d.ts +16 -0
  351. package/api/service/EventBridgeEventTransportPlugin.js +52 -0
  352. package/api/service/EventBridgeEventTransportPlugin.js.map +1 -0
  353. package/api/service/StepFunctionServicePlugin.d.ts +25 -0
  354. package/api/service/StepFunctionServicePlugin.js +77 -0
  355. package/api/service/StepFunctionServicePlugin.js.map +1 -0
  356. package/api/service/createService.d.ts +6 -0
  357. package/api/service/createService.js +16 -0
  358. package/api/service/createService.js.map +1 -0
  359. package/api/service/index.d.ts +4 -0
  360. package/api/service/index.js +12 -0
  361. package/api/service/index.js.map +1 -0
  362. package/api/tasks/testingRunTask.d.ts +11 -0
  363. package/api/tasks/testingRunTask.js +18 -0
  364. package/api/tasks/testingRunTask.js.map +1 -0
  365. package/api/types.d.ts +167 -0
  366. package/api/types.js +20 -0
  367. package/api/types.js.map +1 -0
  368. package/api/utils/ObjectUpdater.d.ts +8 -0
  369. package/api/utils/ObjectUpdater.js +33 -0
  370. package/api/utils/ObjectUpdater.js.map +1 -0
  371. package/api/utils/getErrorProperties.d.ts +2 -0
  372. package/api/utils/getErrorProperties.js +9 -0
  373. package/api/utils/getErrorProperties.js.map +1 -0
  374. package/api/utils/getObjectProperties.d.ts +8 -0
  375. package/api/utils/getObjectProperties.js +11 -0
  376. package/api/utils/getObjectProperties.js.map +1 -0
  377. package/api/utils/index.d.ts +3 -0
  378. package/api/utils/index.js +3 -0
  379. package/api/utils/normalizeSelfCleanup.d.ts +2 -0
  380. package/api/utils/normalizeSelfCleanup.js +16 -0
  381. package/api/utils/normalizeSelfCleanup.js.map +1 -0
  382. package/index.d.ts +1 -0
  383. package/index.js +1 -0
  384. package/package.json +28 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UpdateBackgroundTaskSettingsRepository,\n UpdateBackgroundTaskSettingsUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { UpdateBackgroundTaskSettingsInputSchema } from \"./schema.js\";\nimport {\n BackgroundTaskNotAuthorizedError,\n BackgroundTaskValidationError\n} from \"~/api/domain/errors.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\nimport { BackgroundTaskPermissions } from \"~/api/features/BackgroundTaskPermissions/abstractions.js\";\n\nclass UpdateBackgroundTaskSettingsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: BackgroundTaskPermissions.Interface,\n private readonly repository: UpdateBackgroundTaskSettingsRepository.Interface\n ) {}\n\n async execute(\n input: UseCaseAbstraction.Input\n ): Promise<Result<IBackgroundTaskSettings, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canEdit(\"task\"))) {\n return Result.fail(new BackgroundTaskNotAuthorizedError());\n }\n\n const parsed = UpdateBackgroundTaskSettingsInputSchema.safeParse(input);\n if (!parsed.success) {\n return Result.fail(new BackgroundTaskValidationError(parsed.error));\n }\n\n return this.repository.execute(parsed.data);\n }\n}\n\nexport const UpdateBackgroundTaskSettingsUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsUseCaseImpl,\n dependencies: [BackgroundTaskPermissions, UpdateBackgroundTaskSettingsRepository]\n});\n"],"names":["UpdateBackgroundTaskSettingsUseCaseImpl","permissions","repository","input","Result","BackgroundTaskNotAuthorizedError","parsed","UpdateBackgroundTaskSettingsInputSchema","BackgroundTaskValidationError","UpdateBackgroundTaskSettingsUseCase","UseCaseAbstraction","BackgroundTaskPermissions","UpdateBackgroundTaskSettingsRepository"],"mappings":";;;;;AAaA,MAAMA;IACF,YACqBC,WAAgD,EAChDC,UAA4D,CAC/E;aAFmBD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IAClB;IAEH,MAAM,QACFC,KAA+B,EACmC;QAClE,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,wCAAwC,SAAS,CAACJ;QACjE,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,8BAA8BF,OAAO,KAAK;QAGrE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA,OAAO,IAAI;IAC9C;AACJ;AAEO,MAAMG,0EAAsCC,oCAAAA,oBAAuC,CAAC;IACvF,gBAAgBV;IAChB,cAAc;QAACW;QAA2BC;KAAuC;AACrF"}
@@ -0,0 +1,26 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
3
+ import type { BackgroundTaskModelNotFoundError, BackgroundTaskNotAuthorizedError, BackgroundTaskPersistenceError, BackgroundTaskValidationError } from "../../../api/domain/errors.js";
4
+ export interface IUpdateBackgroundTaskSettingsInput {
5
+ retentionDays?: number;
6
+ }
7
+ type IError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError | BackgroundTaskNotAuthorizedError | BackgroundTaskValidationError;
8
+ export interface IUpdateBackgroundTaskSettingsUseCase {
9
+ execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, IError>>;
10
+ }
11
+ export declare const UpdateBackgroundTaskSettingsUseCase: import("@webiny/di").Abstraction<IUpdateBackgroundTaskSettingsUseCase>;
12
+ export declare namespace UpdateBackgroundTaskSettingsUseCase {
13
+ type Interface = IUpdateBackgroundTaskSettingsUseCase;
14
+ type Input = IUpdateBackgroundTaskSettingsInput;
15
+ type Error = IError;
16
+ }
17
+ type IRepositoryError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError;
18
+ export interface IUpdateBackgroundTaskSettingsRepository {
19
+ execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, IRepositoryError>>;
20
+ }
21
+ export declare const UpdateBackgroundTaskSettingsRepository: import("@webiny/di").Abstraction<IUpdateBackgroundTaskSettingsRepository>;
22
+ export declare namespace UpdateBackgroundTaskSettingsRepository {
23
+ type Interface = IUpdateBackgroundTaskSettingsRepository;
24
+ type Error = IRepositoryError;
25
+ }
26
+ export {};
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const UpdateBackgroundTaskSettingsUseCase = createAbstraction("BackgroundTasks/UpdateBackgroundTaskSettingsUseCase");
3
+ const UpdateBackgroundTaskSettingsRepository = createAbstraction("BackgroundTasks/UpdateBackgroundTaskSettingsRepository");
4
+ export { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/abstractions.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\nimport type {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskNotAuthorizedError,\n BackgroundTaskPersistenceError,\n BackgroundTaskValidationError\n} from \"~/api/domain/errors.js\";\n\nexport interface IUpdateBackgroundTaskSettingsInput {\n retentionDays?: number;\n}\n\ntype IError =\n | BackgroundTaskModelNotFoundError\n | BackgroundTaskPersistenceError\n | BackgroundTaskNotAuthorizedError\n | BackgroundTaskValidationError;\n\nexport interface IUpdateBackgroundTaskSettingsUseCase {\n execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, IError>>;\n}\n\nexport const UpdateBackgroundTaskSettingsUseCase =\n createAbstraction<IUpdateBackgroundTaskSettingsUseCase>(\n \"BackgroundTasks/UpdateBackgroundTaskSettingsUseCase\"\n );\n\nexport namespace UpdateBackgroundTaskSettingsUseCase {\n export type Interface = IUpdateBackgroundTaskSettingsUseCase;\n export type Input = IUpdateBackgroundTaskSettingsInput;\n export type Error = IError;\n}\n\ntype IRepositoryError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError;\n\nexport interface IUpdateBackgroundTaskSettingsRepository {\n execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, IRepositoryError>>;\n}\n\nexport const UpdateBackgroundTaskSettingsRepository =\n createAbstraction<IUpdateBackgroundTaskSettingsRepository>(\n \"BackgroundTasks/UpdateBackgroundTaskSettingsRepository\"\n );\n\nexport namespace UpdateBackgroundTaskSettingsRepository {\n export type Interface = IUpdateBackgroundTaskSettingsRepository;\n export type Error = IRepositoryError;\n}\n"],"names":["UpdateBackgroundTaskSettingsUseCase","createAbstraction","UpdateBackgroundTaskSettingsRepository"],"mappings":";AAyBO,MAAMA,sCACTC,kBACI;AAiBD,MAAMC,yCACTD,kBACI"}
@@ -0,0 +1,4 @@
1
+ export declare const UpdateBackgroundTaskSettingsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpdateBackgroundTaskSettingsUseCase } from "./UpdateBackgroundTaskSettingsUseCase.js";
3
+ import { UpdateBackgroundTaskSettingsRepository } from "./UpdateBackgroundTaskSettingsRepository.js";
4
+ const UpdateBackgroundTaskSettingsFeature = createFeature({
5
+ name: "UpdateBackgroundTaskSettings",
6
+ register (container) {
7
+ container.register(UpdateBackgroundTaskSettingsUseCase);
8
+ container.register(UpdateBackgroundTaskSettingsRepository).inSingletonScope();
9
+ }
10
+ });
11
+ export { UpdateBackgroundTaskSettingsFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/feature.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"./UpdateBackgroundTaskSettingsUseCase.js\";\nimport { UpdateBackgroundTaskSettingsRepository } from \"./UpdateBackgroundTaskSettingsRepository.js\";\n\nexport const UpdateBackgroundTaskSettingsFeature = createFeature({\n name: \"UpdateBackgroundTaskSettings\",\n register(container) {\n container.register(UpdateBackgroundTaskSettingsUseCase);\n container.register(UpdateBackgroundTaskSettingsRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateBackgroundTaskSettingsFeature","createFeature","container","UpdateBackgroundTaskSettingsUseCase","UpdateBackgroundTaskSettingsRepository"],"mappings":";;;AAIO,MAAMA,sCAAsCC,cAAc;IAC7D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,wCAAwC,gBAAgB;IAC/E;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { UpdateBackgroundTaskSettingsUseCase, UpdateBackgroundTaskSettingsRepository } from "./abstractions.js";
2
+ export { UpdateBackgroundTaskSettingsFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase } from "./abstractions.js";
2
+ export { UpdateBackgroundTaskSettingsFeature } from "./feature.js";
@@ -0,0 +1,4 @@
1
+ import { z } from "zod";
2
+ export declare const UpdateBackgroundTaskSettingsInputSchema: z.ZodObject<{
3
+ retentionDays: z.ZodOptional<z.ZodNumber>;
4
+ }, z.core.$strip>;
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ import { BACKGROUND_TASK_MAX_RETENTION_DAYS } from "../../domain/constants.js";
3
+ const UpdateBackgroundTaskSettingsInputSchema = z.object({
4
+ retentionDays: z.number().int().min(0).max(BACKGROUND_TASK_MAX_RETENTION_DAYS).optional()
5
+ });
6
+ export { UpdateBackgroundTaskSettingsInputSchema };
7
+
8
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/schema.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/schema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { BACKGROUND_TASK_MAX_RETENTION_DAYS } from \"~/api/domain/constants.js\";\n\nexport const UpdateBackgroundTaskSettingsInputSchema = z.object({\n retentionDays: z.number().int().min(0).max(BACKGROUND_TASK_MAX_RETENTION_DAYS).optional()\n});\n"],"names":["UpdateBackgroundTaskSettingsInputSchema","z","BACKGROUND_TASK_MAX_RETENTION_DAYS"],"mappings":";;AAGO,MAAMA,0CAA0CC,EAAE,MAAM,CAAC;IAC5D,eAAeA,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAACC,oCAAoC,QAAQ;AAC3F"}
@@ -0,0 +1 @@
1
+ import "./features/TaskController/augmentation.js";
package/api/global.js ADDED
@@ -0,0 +1 @@
1
+ import "./features/TaskController/augmentation.js";
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from "@webiny/plugins/types.js";
2
+ export declare const createBackgroundTaskSettingsGraphQL: () => Plugin[];
@@ -0,0 +1,84 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { ContextPlugin } from "@webiny/handler";
3
+ import { GetBackgroundTaskSettingsRepository } from "../features/GetBackgroundTaskSettings/abstractions.js";
4
+ import { UpdateBackgroundTaskSettingsUseCase } from "../features/UpdateBackgroundTaskSettings/abstractions.js";
5
+ import { checkPermissions } from "./checkPermissions.js";
6
+ const resolve = async (fn)=>{
7
+ try {
8
+ const data = await fn();
9
+ return {
10
+ data,
11
+ error: null
12
+ };
13
+ } catch (error) {
14
+ return {
15
+ data: null,
16
+ error: {
17
+ message: error.message,
18
+ code: error.code,
19
+ data: error.data
20
+ }
21
+ };
22
+ }
23
+ };
24
+ const createBackgroundTaskSettingsGraphQL = ()=>{
25
+ const plugin = new ContextPlugin(async (ctx)=>{
26
+ if (!ctx.tenancy.getCurrentTenant()) return;
27
+ const schema = new GraphQLSchemaPlugin({
28
+ typeDefs: `
29
+ type WebinyBackgroundTaskSettings {
30
+ retentionDays: Int
31
+ }
32
+
33
+ type WebinyBackgroundTaskSettingsResponse {
34
+ data: WebinyBackgroundTaskSettings
35
+ error: WebinyBackgroundTaskError
36
+ }
37
+
38
+ input UpdateBackgroundTaskSettingsInput {
39
+ retentionDays: Int
40
+ }
41
+
42
+ extend type WebinyBackgroundTaskQuery {
43
+ getSettings: WebinyBackgroundTaskSettingsResponse
44
+ }
45
+
46
+ extend type WebinyBackgroundTaskMutation {
47
+ updateSettings(
48
+ input: UpdateBackgroundTaskSettingsInput!
49
+ ): WebinyBackgroundTaskSettingsResponse
50
+ }
51
+ `,
52
+ resolvers: {
53
+ WebinyBackgroundTaskQuery: {
54
+ getSettings: async (_, __, context)=>resolve(async ()=>{
55
+ await checkPermissions(context, {
56
+ rwd: "r"
57
+ });
58
+ const repository = context.container.resolve(GetBackgroundTaskSettingsRepository);
59
+ const result = await repository.execute();
60
+ if (result.isFail()) throw result.error;
61
+ return result.value;
62
+ })
63
+ },
64
+ WebinyBackgroundTaskMutation: {
65
+ updateSettings: async (_, args, context)=>resolve(async ()=>{
66
+ const useCase = context.container.resolve(UpdateBackgroundTaskSettingsUseCase);
67
+ const result = await useCase.execute(args.input);
68
+ if (result.isFail()) throw result.error;
69
+ return result.value;
70
+ })
71
+ }
72
+ }
73
+ });
74
+ schema.name = "backgroundTasks.settings.graphql.schema";
75
+ ctx.plugins.register(schema);
76
+ });
77
+ plugin.name = "backgroundTasks.settings.graphql";
78
+ return [
79
+ plugin
80
+ ];
81
+ };
82
+ export { createBackgroundTaskSettingsGraphQL };
83
+
84
+ //# sourceMappingURL=BackgroundTaskSettingsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/graphql/BackgroundTaskSettingsSchema.js","sources":["../../../src/api/graphql/BackgroundTaskSettingsSchema.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context } from \"~/api/types.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 type { Plugin } from \"@webiny/plugins/types.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\n\ninterface IUpdateSettingsArgs {\n input: IUpdateBackgroundTaskSettingsInput;\n}\n\nconst resolve = async <T = unknown>(fn: () => Promise<T>) => {\n try {\n const data = await fn();\n return { data, error: null };\n } catch (error: any) {\n return {\n data: null,\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n }\n };\n }\n};\n\nexport const createBackgroundTaskSettingsGraphQL = (): Plugin[] => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const schema = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\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 resolvers: {\n WebinyBackgroundTaskQuery: {\n getSettings: async (_, __, 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 updateSettings: async (_, args: IUpdateSettingsArgs, 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 });\n\n schema.name = \"backgroundTasks.settings.graphql.schema\";\n ctx.plugins.register(schema);\n });\n\n plugin.name = \"backgroundTasks.settings.graphql\";\n\n return [plugin];\n};\n"],"names":["resolve","fn","data","error","createBackgroundTaskSettingsGraphQL","plugin","ContextPlugin","ctx","schema","GraphQLSchemaPlugin","_","__","context","checkPermissions","repository","GetBackgroundTaskSettingsRepository","result","args","useCase","UpdateBackgroundTaskSettingsUseCase"],"mappings":";;;;;AAaA,MAAMA,UAAU,OAAoBC;IAChC,IAAI;QACA,MAAMC,OAAO,MAAMD;QACnB,OAAO;YAAEC;YAAM,OAAO;QAAK;IAC/B,EAAE,OAAOC,OAAY;QACjB,OAAO;YACH,MAAM;YACN,OAAO;gBACH,SAASA,MAAM,OAAO;gBACtB,MAAMA,MAAM,IAAI;gBAChB,MAAMA,MAAM,IAAI;YACpB;QACJ;IACJ;AACJ;AAEO,MAAMC,sCAAsC;IAC/C,MAAMC,SAAS,IAAIC,cAAuB,OAAMC;QAC5C,IAAI,CAACA,IAAI,OAAO,CAAC,gBAAgB,IAC7B;QAGJ,MAAMC,SAAS,IAAIC,oBAA6B;YAC5C,UAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;YAuBzB,CAAC;YACD,WAAW;gBACP,2BAA2B;oBACvB,aAAa,OAAOC,GAAGC,IAAIC,UAChBZ,QAAQ;4BACX,MAAMa,iBAAiBD,SAAS;gCAAE,KAAK;4BAAI;4BAC3C,MAAME,aAAaF,QAAQ,SAAS,CAAC,OAAO,CACxCG;4BAEJ,MAAMC,SAAS,MAAMF,WAAW,OAAO;4BACvC,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;gBAER;gBACA,8BAA8B;oBAC1B,gBAAgB,OAAON,GAAGO,MAA2BL,UAC1CZ,QAAQ;4BACX,MAAMkB,UAAUN,QAAQ,SAAS,CAAC,OAAO,CACrCO;4BAEJ,MAAMH,SAAS,MAAME,QAAQ,OAAO,CAACD,KAAK,KAAK;4BAC/C,IAAID,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;gBAER;YACJ;QACJ;QAEAR,OAAO,IAAI,GAAG;QACdD,IAAI,OAAO,CAAC,QAAQ,CAACC;IACzB;IAEAH,OAAO,IAAI,GAAG;IAEd,OAAO;QAACA;KAAO;AACnB"}
@@ -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,21 @@
1
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
2
+ const checkPermissions = async (context, check = {})=>{
3
+ const taskPermissions = await context.security.getPermissions("tasks");
4
+ const relevant = taskPermissions.filter((current)=>{
5
+ if (check.rwd && !hasRwd(current, check.rwd)) return false;
6
+ return true;
7
+ });
8
+ if (0 === relevant.length) throw new NotAuthorizedError();
9
+ };
10
+ const hasRwd = (permissions, rwd)=>{
11
+ if (!Array.isArray(permissions)) permissions = [
12
+ permissions
13
+ ];
14
+ if (!rwd) return true;
15
+ const permissionWithoutRwdRestrictions = permissions.some((permission)=>"string" != typeof permission.rwd);
16
+ if (permissionWithoutRwdRestrictions) return true;
17
+ return permissions.some((permission)=>permission.rwd && permission.rwd.includes(rwd));
18
+ };
19
+ export { checkPermissions };
20
+
21
+ //# 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 { 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.security.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","relevant","current","hasRwd","NotAuthorizedError","permissions","rwd","Array","permissionWithoutRwdRestrictions","permission"],"mappings":";AAMO,MAAMA,mBAAmB,OAC5BC,SACAC,QAA0B,CAAC,CAAC;IAE5B,MAAMC,kBAAkB,MAAMF,QAAQ,QAAQ,CAAC,cAAc,CAAiB;IAE9E,MAAMG,WAAWD,gBAAgB,MAAM,CAACE,CAAAA;QACpC,IAAIH,MAAM,GAAG,IAAI,CAACI,OAAOD,SAASH,MAAM,GAAG,GACvC,OAAO;QAGX,OAAO;IACX;IAEA,IAAIE,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,2 @@
1
+ import type { Plugin } from "@webiny/plugins/types.js";
2
+ export declare const createBackgroundTaskGraphQL: () => Plugin[];
@@ -0,0 +1,302 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { renderSortEnum } from "@webiny/api-headless-cms/utils/renderSortEnum.js";
3
+ import { ContextPlugin } from "@webiny/handler";
4
+ import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
5
+ import { emptyResolver, resolve, resolveList } from "./utils.js";
6
+ import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
7
+ import { checkPermissions } from "./checkPermissions.js";
8
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
9
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
10
+ const createGraphQL = ()=>{
11
+ const plugin = new ContextPlugin(async (ctx)=>{
12
+ if (!ctx.tenancy.getCurrentTenant()) return;
13
+ const taskModel = await ctx.tasks.getTaskModel();
14
+ const logModel = await ctx.tasks.getLogModel();
15
+ const listModels = ctx.container.resolve(ListModelsUseCase);
16
+ const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);
17
+ const models = await ctx.security.withoutAuthorization(async ()=>{
18
+ const modelsResult = await listModels.execute({
19
+ includePrivate: false
20
+ });
21
+ return modelsResult.value.filter((model)=>model.fields.length > 0);
22
+ });
23
+ const taskFields = renderFields({
24
+ models,
25
+ model: taskModel,
26
+ fields: taskModel.fields,
27
+ type: "manage",
28
+ fieldRegistry
29
+ });
30
+ const logFields = renderFields({
31
+ models,
32
+ model: logModel,
33
+ fields: logModel.fields.filter((field)=>"task" !== field.fieldId),
34
+ type: "manage",
35
+ fieldRegistry
36
+ });
37
+ const listTasksFilterFieldsRender = renderListFilterFields({
38
+ model: taskModel,
39
+ fields: taskModel.fields,
40
+ type: "manage",
41
+ fieldRegistry,
42
+ excludeFields: [
43
+ "entryId"
44
+ ]
45
+ });
46
+ const listLogsFilterFieldsRender = renderListFilterFields({
47
+ model: logModel,
48
+ fields: logModel.fields,
49
+ type: "manage",
50
+ fieldRegistry,
51
+ excludeFields: [
52
+ "entryId"
53
+ ]
54
+ });
55
+ const sortTasksEnumRender = renderSortEnum({
56
+ model: taskModel,
57
+ fields: taskModel.fields,
58
+ fieldRegistry,
59
+ sorters: []
60
+ });
61
+ const sortLogsEnumRender = renderSortEnum({
62
+ model: logModel,
63
+ fields: logModel.fields,
64
+ fieldRegistry,
65
+ sorters: []
66
+ });
67
+ const plugin = new GraphQLSchemaPlugin({
68
+ typeDefs: `
69
+ type WebinyBackgroundTaskError {
70
+ message: String
71
+ code: String
72
+ data: JSON
73
+ stack: String
74
+ }
75
+
76
+ ${taskFields.map((f)=>f.typeDefs).join("\n")}
77
+ ${logFields.map((f)=>f.typeDefs).join("\n")}
78
+
79
+ type WebinyBackgroundTask {
80
+ id: String!
81
+ createdOn: DateTime!
82
+ savedOn: DateTime
83
+ createdBy: WebinyBackgroundTaskIdentity!
84
+ logs(
85
+ where: WebinyBackgroundTaskLogListWhereInput
86
+ limit: Number
87
+ sort: [WebinyBackgroundTaskLogListSorter!]
88
+ ): [WebinyBackgroundTaskLog!]!
89
+ ${taskFields.map((f)=>f.fields).join("\n")}
90
+ }
91
+
92
+ type WebinyBackgroundTaskResponse {
93
+ data: WebinyBackgroundTask
94
+ error: WebinyBackgroundTaskError
95
+ }
96
+
97
+ type WebinyBackgroundTaskMeta {
98
+ cursor: String
99
+ hasMoreItems: Boolean!
100
+ totalCount: Int!
101
+ }
102
+
103
+ type WebinyBackgroundTaskListResponse {
104
+ data: [WebinyBackgroundTask!]
105
+ meta: WebinyBackgroundTaskMeta
106
+ error: WebinyBackgroundTaskError
107
+ }
108
+
109
+ type WebinyBackgroundTaskLog {
110
+ id: String!
111
+ createdOn: DateTime!
112
+ createdBy: WebinyBackgroundTaskIdentity!
113
+ task: WebinyBackgroundTask!
114
+ ${logFields.map((f)=>f.fields).join("\n")}
115
+ }
116
+
117
+ type WebinyBackgroundTaskLogListResponse {
118
+ data: [WebinyBackgroundTaskLog!]
119
+ meta: WebinyBackgroundTaskMeta
120
+ error: WebinyBackgroundTaskError
121
+ }
122
+
123
+ type WebinyBackgroundTaskDefinition {
124
+ id: String!
125
+ title: String!
126
+ description: String
127
+ }
128
+
129
+ type WebinyBackgroundTaskListDefinitionsResponse {
130
+ data: [WebinyBackgroundTaskDefinition!]
131
+ error: WebinyBackgroundTaskError
132
+ }
133
+
134
+ type WebinyBackgroundTaskIdentity {
135
+ id: String!
136
+ displayName: String!
137
+ type: String
138
+ }
139
+
140
+ type WebinyBackgroundTaskTriggerResponse {
141
+ data: WebinyBackgroundTask
142
+ error: WebinyBackgroundTaskError
143
+ }
144
+
145
+ type WebinyBackgroundTaskDeleteResponse {
146
+ data: Boolean
147
+ error: WebinyBackgroundTaskError
148
+ }
149
+
150
+ input WebinyBackgroundTaskListWhereInput {
151
+ ${listTasksFilterFieldsRender.allFiltersAsString() || "_empty: String"}
152
+ }
153
+
154
+ input WebinyBackgroundTaskLogListWhereInput {
155
+ ${listLogsFilterFieldsRender.allFiltersAsString() || "_empty: String"}
156
+ }
157
+
158
+ enum WebinyBackgroundTaskListSorter {
159
+ ${sortTasksEnumRender}
160
+ }
161
+
162
+ enum WebinyBackgroundTaskLogListSorter {
163
+ ${sortLogsEnumRender}
164
+ }
165
+
166
+ type WebinyBackgroundTaskQuery {
167
+ _empty: String
168
+ }
169
+
170
+ type WebinyBackgroundTaskMutation {
171
+ _empty: String
172
+ }
173
+
174
+ extend type Query {
175
+ backgroundTasks: WebinyBackgroundTaskQuery
176
+ }
177
+
178
+ extend type Mutation {
179
+ backgroundTasks: WebinyBackgroundTaskMutation
180
+ }
181
+
182
+ extend type WebinyBackgroundTaskQuery {
183
+ getTask(id: ID!): WebinyBackgroundTaskResponse!
184
+ listTasks(
185
+ where: WebinyBackgroundTaskListWhereInput
186
+ sort: [WebinyBackgroundTaskListSorter!]
187
+ limit: Int
188
+ after: String
189
+ search: String
190
+ ): WebinyBackgroundTaskListResponse!
191
+ listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
192
+
193
+ listLogs(
194
+ where: WebinyBackgroundTaskLogListWhereInput
195
+ sort: [WebinyBackgroundTaskLogListSorter!]
196
+ limit: Int
197
+ after: String
198
+ search: String
199
+ ): WebinyBackgroundTaskLogListResponse!
200
+ }
201
+
202
+ extend type WebinyBackgroundTaskMutation {
203
+ triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!
204
+ abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
205
+ deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
206
+ }
207
+ `,
208
+ resolvers: {
209
+ Query: {
210
+ backgroundTasks: emptyResolver
211
+ },
212
+ Mutation: {
213
+ backgroundTasks: emptyResolver
214
+ },
215
+ WebinyBackgroundTaskQuery: {
216
+ getTask: async (_, args, context)=>resolve(async ()=>{
217
+ await checkPermissions(context, {
218
+ rwd: "r"
219
+ });
220
+ return await context.tasks.getTask(args.id);
221
+ }),
222
+ listTasks: async (_, args, context)=>resolveList(async ()=>{
223
+ await checkPermissions(context, {
224
+ rwd: "r"
225
+ });
226
+ return await context.tasks.listTasks(args);
227
+ }),
228
+ listDefinitions: async (_, __, context)=>resolve(async ()=>{
229
+ await checkPermissions(context, {
230
+ rwd: "r"
231
+ });
232
+ const result = context.tasks.listDefinitions();
233
+ return result.filter((item)=>!item.isPrivate);
234
+ }),
235
+ listLogs: async (_, args, context)=>resolveList(async ()=>{
236
+ await checkPermissions(context, {
237
+ rwd: "r"
238
+ });
239
+ return await context.tasks.listLogs(args);
240
+ })
241
+ },
242
+ WebinyBackgroundTaskMutation: {
243
+ abortTask: async (_, args, context)=>{
244
+ await checkPermissions(context, {
245
+ rwd: "w"
246
+ });
247
+ return resolve(async ()=>{
248
+ const result = await context.tasks.abort(args);
249
+ if (result.isOk()) return result.value;
250
+ throw result.error;
251
+ });
252
+ },
253
+ triggerTask: async (_, args, context)=>{
254
+ await checkPermissions(context, {
255
+ rwd: "w"
256
+ });
257
+ return resolve(async ()=>{
258
+ const result = await context.tasks.trigger(args);
259
+ if (result.isOk()) return result.value;
260
+ throw result.error;
261
+ });
262
+ },
263
+ deleteTask: async (_, args, context)=>{
264
+ await checkPermissions(context, {
265
+ rwd: "d"
266
+ });
267
+ return resolve(async ()=>await context.tasks.deleteTask(args.id));
268
+ }
269
+ },
270
+ WebinyBackgroundTask: {
271
+ logs: async (parent, args, context)=>{
272
+ const { items } = await context.tasks.listLogs({
273
+ sort: [
274
+ "createdBy_ASC"
275
+ ],
276
+ limit: 10000,
277
+ ...args,
278
+ where: {
279
+ ...args?.where,
280
+ task: parent.id
281
+ }
282
+ });
283
+ return items;
284
+ }
285
+ },
286
+ WebinyBackgroundTaskLog: {
287
+ task: async (parent, _, context)=>await context.tasks.getTask(parent.task)
288
+ }
289
+ }
290
+ });
291
+ plugin.name = "tasks.graphql.schema";
292
+ ctx.plugins.register(plugin);
293
+ });
294
+ plugin.name = "tasks.graphql";
295
+ return plugin;
296
+ };
297
+ const createBackgroundTaskGraphQL = ()=>[
298
+ createGraphQL()
299
+ ];
300
+ export { createBackgroundTaskGraphQL };
301
+
302
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/graphql/index.js","sources":["../../../src/api/graphql/index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/api/types.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.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\";\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\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const listModels = ctx.container.resolve(ListModelsUseCase);\n const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);\n\n const models = await ctx.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n\n return modelsResult.value.filter(model => model.fields.length > 0);\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 plugin = new GraphQLSchemaPlugin<Context>({\n 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 resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.abort(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.trigger(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.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, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n\n plugin.name = \"tasks.graphql.schema\";\n\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"names":["createGraphQL","plugin","ContextPlugin","ctx","taskModel","logModel","listModels","ListModelsUseCase","fieldRegistry","CmsModelFieldToGraphQLRegistry","models","modelsResult","model","taskFields","renderFields","logFields","field","listTasksFilterFieldsRender","renderListFilterFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sortLogsEnumRender","GraphQLSchemaPlugin","f","emptyResolver","_","args","context","resolve","checkPermissions","resolveList","__","result","item","parent","items","createBackgroundTaskGraphQL"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-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<Response<Awaited<T>> | ErrorResponse>;
8
+ export declare const resolveList: (fn: ResolveCallable) => Promise<ListResponse<any, CmsEntryMeta> | ListErrorResponse>;
9
+ export {};
@@ -0,0 +1,20 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-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