@webiny/tasks 6.0.0-beta.0 → 6.0.0-rc.0

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 (310) hide show
  1. package/README.md +10 -9
  2. package/context.d.ts +2 -3
  3. package/context.js +44 -30
  4. package/context.js.map +1 -1
  5. package/crud/TaskLogPrivateModel.d.ts +9 -0
  6. package/crud/TaskLogPrivateModel.js +34 -0
  7. package/crud/TaskLogPrivateModel.js.map +1 -0
  8. package/crud/TaskPrivateModel.d.ts +9 -0
  9. package/crud/TaskPrivateModel.js +46 -0
  10. package/crud/TaskPrivateModel.js.map +1 -0
  11. package/crud/crud.tasks.d.ts +1 -1
  12. package/crud/crud.tasks.js +238 -94
  13. package/crud/crud.tasks.js.map +1 -1
  14. package/crud/definition.tasks.d.ts +1 -1
  15. package/crud/definition.tasks.js +9 -18
  16. package/crud/definition.tasks.js.map +1 -1
  17. package/crud/service.tasks.d.ts +2 -0
  18. package/crud/{trigger.tasks.js → service.tasks.js} +59 -42
  19. package/crud/service.tasks.js.map +1 -0
  20. package/decorators/RunnableTaskDecorator.d.ts +31 -0
  21. package/decorators/RunnableTaskDecorator.js +82 -0
  22. package/decorators/RunnableTaskDecorator.js.map +1 -0
  23. package/domain/errors.d.ts +29 -0
  24. package/domain/errors.js +47 -0
  25. package/domain/errors.js.map +1 -0
  26. package/events/TaskAfterCreateEvent.d.ts +6 -0
  27. package/events/TaskAfterCreateEvent.js +10 -0
  28. package/events/TaskAfterCreateEvent.js.map +1 -0
  29. package/events/TaskAfterDeleteEvent.d.ts +6 -0
  30. package/events/TaskAfterDeleteEvent.js +10 -0
  31. package/events/TaskAfterDeleteEvent.js.map +1 -0
  32. package/events/TaskAfterUpdateEvent.d.ts +6 -0
  33. package/events/TaskAfterUpdateEvent.js +10 -0
  34. package/events/TaskAfterUpdateEvent.js.map +1 -0
  35. package/events/TaskBeforeCreateEvent.d.ts +6 -0
  36. package/events/TaskBeforeCreateEvent.js +10 -0
  37. package/events/TaskBeforeCreateEvent.js.map +1 -0
  38. package/events/TaskBeforeDeleteEvent.d.ts +6 -0
  39. package/events/TaskBeforeDeleteEvent.js +10 -0
  40. package/events/TaskBeforeDeleteEvent.js.map +1 -0
  41. package/events/TaskBeforeUpdateEvent.d.ts +6 -0
  42. package/events/TaskBeforeUpdateEvent.js +10 -0
  43. package/events/TaskBeforeUpdateEvent.js.map +1 -0
  44. package/events/abstractions.d.ts +53 -0
  45. package/events/abstractions.js +39 -0
  46. package/events/abstractions.js.map +1 -0
  47. package/events/index.d.ts +7 -0
  48. package/events/index.js +9 -0
  49. package/events/index.js.map +1 -0
  50. package/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
  51. package/features/AbortTask/AbortTaskUseCase.js +11 -0
  52. package/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  53. package/features/AbortTask/abstractions.d.ts +25 -0
  54. package/features/AbortTask/abstractions.js +4 -0
  55. package/features/AbortTask/abstractions.js.map +1 -0
  56. package/features/AbortTask/feature.d.ts +2 -0
  57. package/features/AbortTask/feature.js +11 -0
  58. package/features/AbortTask/feature.js.map +1 -0
  59. package/features/AbortTask/index.d.ts +2 -0
  60. package/features/AbortTask/index.js +4 -0
  61. package/features/AbortTask/index.js.map +1 -0
  62. package/features/GetTask/GetTaskUseCase.d.ts +9 -0
  63. package/features/GetTask/GetTaskUseCase.js +10 -0
  64. package/features/GetTask/GetTaskUseCase.js.map +1 -0
  65. package/features/GetTask/abstractions.d.ts +10 -0
  66. package/features/GetTask/abstractions.js +4 -0
  67. package/features/GetTask/abstractions.js.map +1 -0
  68. package/features/GetTask/feature.d.ts +2 -0
  69. package/features/GetTask/feature.js +11 -0
  70. package/features/GetTask/feature.js.map +1 -0
  71. package/features/GetTask/index.d.ts +2 -0
  72. package/features/GetTask/index.js +4 -0
  73. package/features/GetTask/index.js.map +1 -0
  74. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  75. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +25 -0
  76. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  77. package/features/GetTaskDefinition/abstractions.d.ts +17 -0
  78. package/features/GetTaskDefinition/abstractions.js +4 -0
  79. package/features/GetTaskDefinition/abstractions.js.map +1 -0
  80. package/features/GetTaskDefinition/feature.d.ts +1 -0
  81. package/features/GetTaskDefinition/feature.js +10 -0
  82. package/features/GetTaskDefinition/feature.js.map +1 -0
  83. package/features/GetTaskDefinition/index.d.ts +2 -0
  84. package/features/GetTaskDefinition/index.js +4 -0
  85. package/features/GetTaskDefinition/index.js.map +1 -0
  86. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  87. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -0
  88. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  89. package/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  90. package/features/ListTaskDefinitions/abstractions.js +4 -0
  91. package/features/ListTaskDefinitions/abstractions.js.map +1 -0
  92. package/features/ListTaskDefinitions/feature.d.ts +1 -0
  93. package/features/ListTaskDefinitions/feature.js +10 -0
  94. package/features/ListTaskDefinitions/feature.js.map +1 -0
  95. package/features/ListTaskDefinitions/index.d.ts +2 -0
  96. package/features/ListTaskDefinitions/index.js +4 -0
  97. package/features/ListTaskDefinitions/index.js.map +1 -0
  98. package/features/ListTasks/ListTasksUseCase.d.ts +9 -0
  99. package/features/ListTasks/ListTasksUseCase.js +10 -0
  100. package/features/ListTasks/ListTasksUseCase.js.map +1 -0
  101. package/features/ListTasks/abstractions.d.ts +13 -0
  102. package/features/ListTasks/abstractions.js +4 -0
  103. package/features/ListTasks/abstractions.js.map +1 -0
  104. package/features/ListTasks/feature.d.ts +2 -0
  105. package/features/ListTasks/feature.js +11 -0
  106. package/features/ListTasks/feature.js.map +1 -0
  107. package/features/ListTasks/index.d.ts +2 -0
  108. package/features/ListTasks/index.js +4 -0
  109. package/features/ListTasks/index.js.map +1 -0
  110. package/features/TaskController/TaskController.d.ts +49 -0
  111. package/features/TaskController/TaskController.js +71 -0
  112. package/features/TaskController/TaskController.js.map +1 -0
  113. package/features/TaskController/augmentation.d.ts +60 -0
  114. package/features/TaskController/augmentation.js +3 -0
  115. package/features/TaskController/augmentation.js.map +1 -0
  116. package/features/TaskController/index.d.ts +2 -0
  117. package/features/TaskController/index.js +7 -0
  118. package/features/TaskController/index.js.map +1 -0
  119. package/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  120. package/features/TaskExecutionContext/TaskExecutionContext.js +50 -0
  121. package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  122. package/features/TaskExecutionContext/abstractions.d.ts +26 -0
  123. package/features/TaskExecutionContext/abstractions.js +13 -0
  124. package/features/TaskExecutionContext/abstractions.js.map +1 -0
  125. package/features/TaskExecutionContext/feature.d.ts +1 -0
  126. package/features/TaskExecutionContext/feature.js +10 -0
  127. package/features/TaskExecutionContext/feature.js.map +1 -0
  128. package/features/TaskExecutionContext/index.d.ts +1 -0
  129. package/features/TaskExecutionContext/index.js +3 -0
  130. package/features/TaskExecutionContext/index.js.map +1 -0
  131. package/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
  132. package/features/TriggerTask/TriggerTaskUseCase.js +11 -0
  133. package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  134. package/features/TriggerTask/abstractions.d.ts +28 -0
  135. package/features/TriggerTask/abstractions.js +4 -0
  136. package/features/TriggerTask/abstractions.js.map +1 -0
  137. package/features/TriggerTask/feature.d.ts +2 -0
  138. package/features/TriggerTask/feature.js +11 -0
  139. package/features/TriggerTask/feature.js.map +1 -0
  140. package/features/TriggerTask/index.d.ts +2 -0
  141. package/features/TriggerTask/index.js +4 -0
  142. package/features/TriggerTask/index.js.map +1 -0
  143. package/global.d.ts +1 -0
  144. package/global.js +3 -0
  145. package/global.js.map +1 -0
  146. package/graphql/checkPermissions.d.ts +1 -1
  147. package/graphql/checkPermissions.js +3 -9
  148. package/graphql/checkPermissions.js.map +1 -1
  149. package/graphql/index.d.ts +1 -1
  150. package/graphql/index.js +64 -71
  151. package/graphql/index.js.map +1 -1
  152. package/graphql/utils.d.ts +1 -1
  153. package/graphql/utils.js +8 -17
  154. package/graphql/utils.js.map +1 -1
  155. package/handler/index.d.ts +2 -5
  156. package/handler/index.js +33 -40
  157. package/handler/index.js.map +1 -1
  158. package/handler/register.js +8 -8
  159. package/handler/register.js.map +1 -1
  160. package/handler/types.d.ts +2 -2
  161. package/handler/types.js +1 -5
  162. package/handler/types.js.map +1 -1
  163. package/index.d.ts +5 -6
  164. package/index.js +5 -60
  165. package/index.js.map +1 -1
  166. package/package.json +23 -44
  167. package/plugins/TaskServicePlugin.d.ts +19 -0
  168. package/plugins/TaskServicePlugin.js +10 -0
  169. package/plugins/TaskServicePlugin.js.map +1 -0
  170. package/plugins/index.d.ts +1 -1
  171. package/plugins/index.js +1 -16
  172. package/plugins/index.js.map +1 -1
  173. package/response/DatabaseResponse.d.ts +3 -3
  174. package/response/DatabaseResponse.js +14 -20
  175. package/response/DatabaseResponse.js.map +1 -1
  176. package/response/Response.d.ts +4 -3
  177. package/response/Response.js +63 -27
  178. package/response/Response.js.map +1 -1
  179. package/response/ResponseAbortedResult.d.ts +3 -4
  180. package/response/ResponseAbortedResult.js +3 -11
  181. package/response/ResponseAbortedResult.js.map +1 -1
  182. package/response/ResponseContinueResult.d.ts +4 -4
  183. package/response/ResponseContinueResult.js +3 -11
  184. package/response/ResponseContinueResult.js.map +1 -1
  185. package/response/ResponseDoneResult.d.ts +4 -5
  186. package/response/ResponseDoneResult.js +4 -12
  187. package/response/ResponseDoneResult.js.map +1 -1
  188. package/response/ResponseErrorResult.d.ts +3 -4
  189. package/response/ResponseErrorResult.js +3 -11
  190. package/response/ResponseErrorResult.js.map +1 -1
  191. package/response/TaskResponse.d.ts +7 -6
  192. package/response/TaskResponse.js +7 -14
  193. package/response/TaskResponse.js.map +1 -1
  194. package/response/abstractions/Response.d.ts +9 -9
  195. package/response/abstractions/Response.js +1 -5
  196. package/response/abstractions/Response.js.map +1 -1
  197. package/response/abstractions/ResponseAbortedResult.d.ts +3 -3
  198. package/response/abstractions/ResponseAbortedResult.js +1 -5
  199. package/response/abstractions/ResponseAbortedResult.js.map +1 -1
  200. package/response/abstractions/ResponseBaseResult.d.ts +2 -3
  201. package/response/abstractions/ResponseBaseResult.js +1 -5
  202. package/response/abstractions/ResponseBaseResult.js.map +1 -1
  203. package/response/abstractions/ResponseContinueResult.d.ts +5 -4
  204. package/response/abstractions/ResponseContinueResult.js +1 -5
  205. package/response/abstractions/ResponseContinueResult.js.map +1 -1
  206. package/response/abstractions/ResponseDoneResult.d.ts +5 -6
  207. package/response/abstractions/ResponseDoneResult.js +1 -5
  208. package/response/abstractions/ResponseDoneResult.js.map +1 -1
  209. package/response/abstractions/ResponseErrorResult.d.ts +6 -6
  210. package/response/abstractions/ResponseErrorResult.js +1 -5
  211. package/response/abstractions/ResponseErrorResult.js.map +1 -1
  212. package/response/abstractions/TaskResponse.d.ts +9 -34
  213. package/response/abstractions/TaskResponse.js +1 -5
  214. package/response/abstractions/TaskResponse.js.map +1 -1
  215. package/response/abstractions/index.d.ts +7 -7
  216. package/response/abstractions/index.js +7 -82
  217. package/response/abstractions/index.js.map +1 -1
  218. package/response/index.d.ts +7 -7
  219. package/response/index.js +7 -82
  220. package/response/index.js.map +1 -1
  221. package/runner/TaskControl.d.ts +4 -4
  222. package/runner/TaskControl.js +98 -49
  223. package/runner/TaskControl.js.map +1 -1
  224. package/runner/TaskEventValidation.d.ts +2 -2
  225. package/runner/TaskEventValidation.js +11 -20
  226. package/runner/TaskEventValidation.js.map +1 -1
  227. package/runner/TaskManager.d.ts +7 -8
  228. package/runner/TaskManager.js +19 -38
  229. package/runner/TaskManager.js.map +1 -1
  230. package/runner/TaskManagerStore.d.ts +14 -5
  231. package/runner/TaskManagerStore.js +40 -26
  232. package/runner/TaskManagerStore.js.map +1 -1
  233. package/runner/TaskRunner.d.ts +6 -7
  234. package/runner/TaskRunner.js +9 -31
  235. package/runner/TaskRunner.js.map +1 -1
  236. package/runner/abstractions/TaskControl.d.ts +4 -4
  237. package/runner/abstractions/TaskControl.js +1 -5
  238. package/runner/abstractions/TaskControl.js.map +1 -1
  239. package/runner/abstractions/TaskEventValidation.d.ts +2 -2
  240. package/runner/abstractions/TaskEventValidation.js +1 -5
  241. package/runner/abstractions/TaskEventValidation.js.map +1 -1
  242. package/runner/abstractions/TaskManager.d.ts +4 -4
  243. package/runner/abstractions/TaskManager.js +1 -5
  244. package/runner/abstractions/TaskManager.js.map +1 -1
  245. package/runner/abstractions/TaskManagerStore.d.ts +15 -9
  246. package/runner/abstractions/TaskManagerStore.js +1 -5
  247. package/runner/abstractions/TaskManagerStore.js.map +1 -1
  248. package/runner/abstractions/TaskRunner.d.ts +9 -4
  249. package/runner/abstractions/TaskRunner.js +1 -5
  250. package/runner/abstractions/TaskRunner.js.map +1 -1
  251. package/runner/abstractions/index.d.ts +5 -5
  252. package/runner/abstractions/index.js +5 -60
  253. package/runner/abstractions/index.js.map +1 -1
  254. package/runner/index.d.ts +1 -1
  255. package/runner/index.js +1 -16
  256. package/runner/index.js.map +1 -1
  257. package/service/EventBridgeEventTransportPlugin.d.ts +16 -0
  258. package/service/EventBridgeEventTransportPlugin.js +51 -0
  259. package/service/EventBridgeEventTransportPlugin.js.map +1 -0
  260. package/service/StepFunctionServicePlugin.d.ts +25 -0
  261. package/service/StepFunctionServicePlugin.js +78 -0
  262. package/service/StepFunctionServicePlugin.js.map +1 -0
  263. package/service/createService.d.ts +6 -0
  264. package/service/createService.js +19 -0
  265. package/service/createService.js.map +1 -0
  266. package/service/index.d.ts +4 -0
  267. package/service/index.js +10 -0
  268. package/service/index.js.map +1 -0
  269. package/tasks/testingRunTask.d.ts +10 -1
  270. package/tasks/testingRunTask.js +13 -18
  271. package/tasks/testingRunTask.js.map +1 -1
  272. package/types.d.ts +47 -215
  273. package/types.js +8 -68
  274. package/types.js.map +1 -1
  275. package/utils/ObjectUpdater.js +4 -11
  276. package/utils/ObjectUpdater.js.map +1 -1
  277. package/utils/getErrorProperties.d.ts +2 -2
  278. package/utils/getErrorProperties.js +5 -10
  279. package/utils/getErrorProperties.js.map +1 -1
  280. package/utils/getObjectProperties.js +1 -8
  281. package/utils/getObjectProperties.js.map +1 -1
  282. package/utils/index.d.ts +3 -0
  283. package/utils/index.js +5 -0
  284. package/utils/index.js.map +1 -0
  285. package/crud/model.d.ts +0 -5
  286. package/crud/model.js +0 -216
  287. package/crud/model.js.map +0 -1
  288. package/crud/transport/EventBridgeEventTransportPlugin.d.ts +0 -5
  289. package/crud/transport/EventBridgeEventTransportPlugin.js +0 -58
  290. package/crud/transport/EventBridgeEventTransportPlugin.js.map +0 -1
  291. package/crud/trigger.tasks.d.ts +0 -2
  292. package/crud/trigger.tasks.js.map +0 -1
  293. package/crud/where.d.ts +0 -1
  294. package/crud/where.js +0 -33
  295. package/crud/where.js.map +0 -1
  296. package/plugins/TaskTriggerTransportPlugin.d.ts +0 -17
  297. package/plugins/TaskTriggerTransportPlugin.js +0 -20
  298. package/plugins/TaskTriggerTransportPlugin.js.map +0 -1
  299. package/task/index.d.ts +0 -2
  300. package/task/index.js +0 -29
  301. package/task/index.js.map +0 -1
  302. package/task/input.d.ts +0 -15
  303. package/task/input.js +0 -21
  304. package/task/input.js.map +0 -1
  305. package/task/plugin.d.ts +0 -34
  306. package/task/plugin.js +0 -100
  307. package/task/plugin.js.map +0 -1
  308. package/transport/createTransport.d.ts +0 -7
  309. package/transport/createTransport.js +0 -32
  310. package/transport/createTransport.js.map +0 -1
@@ -1,15 +1,9 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createTriggerTasksCrud = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _types = require("../types");
10
- var _handlerGraphql = require("@webiny/handler-graphql");
11
- var _createTransport = require("../transport/createTransport");
12
- var _EventBridgeEventTransportPlugin = require("./transport/EventBridgeEventTransportPlugin");
1
+ import WebinyError from "@webiny/error";
2
+ import { TaskDataStatus, TaskLogItemType } from "../types.js";
3
+ import { NotFoundError } from "@webiny/handler-graphql";
4
+ import { createService } from "../service/index.js";
5
+ import { Result } from "@webiny/feature/api";
6
+ import { TaskAbortError, TaskDefinitionNotFoundError, TaskNotFoundError, TaskServiceInfoError } from "../domain/errors.js";
13
7
  const MAX_DELAY_DAYS = 355;
14
8
  const MAX_DELAY_SECONDS = MAX_DELAY_DAYS * 24 * 60 * 60;
15
9
  const validateDelay = ({
@@ -21,16 +15,14 @@ const validateDelay = ({
21
15
  } else if (delay < MAX_DELAY_SECONDS) {
22
16
  return;
23
17
  }
24
- throw new _error.default(`The maximum delay for a task is ${MAX_DELAY_DAYS} days.`, "MAX_DELAY_ERROR", {
18
+ throw new WebinyError(`The maximum delay for a task is ${MAX_DELAY_DAYS} days.`, "MAX_DELAY_ERROR", {
25
19
  ...input,
26
20
  delay
27
21
  });
28
22
  };
29
- const createTriggerTasksCrud = (context, config) => {
30
- context.plugins.register(new _EventBridgeEventTransportPlugin.EventBridgeEventTransportPlugin());
31
- const transport = (0, _createTransport.createTransport)({
32
- context,
33
- config
23
+ export const createServiceCrud = context => {
24
+ const service = createService({
25
+ context
34
26
  });
35
27
  return {
36
28
  trigger: async params => {
@@ -43,7 +35,7 @@ const createTriggerTasksCrud = (context, config) => {
43
35
  } = params;
44
36
  const definition = context.tasks.getDefinition(id);
45
37
  if (!definition) {
46
- throw new _error.default(`Task definition was not found!`, "TASK_DEFINITION_ERROR", {
38
+ throw new WebinyError(`Task definition was not found!`, "TASK_DEFINITION_ERROR", {
47
39
  id
48
40
  });
49
41
  }
@@ -55,7 +47,6 @@ const createTriggerTasksCrud = (context, config) => {
55
47
  };
56
48
  if (definition.onBeforeTrigger) {
57
49
  await definition.onBeforeTrigger({
58
- context,
59
50
  data: input
60
51
  });
61
52
  }
@@ -63,16 +54,24 @@ const createTriggerTasksCrud = (context, config) => {
63
54
  input,
64
55
  delay
65
56
  });
66
- const task = await context.tasks.createTask(input);
67
- let event = null;
57
+ let task;
68
58
  try {
69
- event = await transport.send(task, delay);
70
- if (!event) {
71
- throw new _error.default(`Could not create the Event Bridge Event!`, "CREATE_EVENT_BRIDGE_EVENT_ERROR", {
59
+ task = await context.tasks.createTask(input);
60
+ } catch (ex) {
61
+ console.log("Could not create the task.", ex);
62
+ throw ex;
63
+ }
64
+ let result = null;
65
+ try {
66
+ result = await service.send(task, delay);
67
+ if (!result) {
68
+ throw new WebinyError(`Could not trigger the step function!`, "TRIGGER_STEP_FUNCTION_ERROR", {
72
69
  task
73
70
  });
74
71
  }
75
72
  } catch (ex) {
73
+ console.log("Could not trigger the step function.");
74
+ console.error(ex);
76
75
  /**
77
76
  * In case of failure to create the Event Bridge Event, we need to delete the task that was meant to be created.
78
77
  * TODO maybe we can leave the task and update it as failed - with event bridge error?
@@ -80,34 +79,54 @@ const createTriggerTasksCrud = (context, config) => {
80
79
  await context.tasks.deleteTask(task.id);
81
80
  throw ex;
82
81
  }
83
- return await context.tasks.updateTask(task.id, {
84
- eventResponse: event
82
+ const updatedTask = await context.tasks.updateTask(task.id, {
83
+ eventResponse: result
85
84
  });
85
+ return Result.ok(updatedTask);
86
+ },
87
+ fetchServiceInfo: async input => {
88
+ const task = typeof input === "object" ? input : await context.tasks.getTask(input);
89
+ if (!task && typeof input === "string") {
90
+ throw new NotFoundError(`Task "${input}" was not found!`);
91
+ } else if (!task) {
92
+ throw new WebinyError(`Task was not found!`, "TASK_FETCH_ERROR", {
93
+ input
94
+ });
95
+ }
96
+ try {
97
+ const info = await service.fetch(task);
98
+ if (info) {
99
+ return Result.ok(info);
100
+ }
101
+ return Result.fail(new TaskServiceInfoError());
102
+ } catch (ex) {
103
+ console.log("Service fetch error.");
104
+ console.error(ex);
105
+ return Result.fail(new TaskServiceInfoError());
106
+ }
86
107
  },
87
108
  abort: async params => {
88
109
  const task = await context.tasks.getTask(params.id);
89
110
  if (!task) {
90
- throw new _handlerGraphql.NotFoundError(`Task "${params.id}" was not found!`);
111
+ return Result.fail(new TaskNotFoundError());
91
112
  }
92
113
  const definition = context.tasks.getDefinition(task.definitionId);
93
114
  if (!definition) {
94
- throw new _error.default(`Task definition was not found!`, "TASK_DEFINITION_ERROR", {
95
- id: task.id
96
- });
115
+ return Result.fail(new TaskDefinitionNotFoundError(task.definitionId));
97
116
  }
98
117
  /**
99
118
  * We should only be able to abort a task which is pending or running
100
119
  */
101
- if ([_types.TaskDataStatus.PENDING, _types.TaskDataStatus.RUNNING].includes(task.taskStatus) === false) {
102
- throw new _error.default(`Cannot abort a task that is not pending or running!`, "TASK_ABORT_ERROR", {
120
+ if ([TaskDataStatus.PENDING, TaskDataStatus.RUNNING].includes(task.taskStatus) === false) {
121
+ return Result.fail(new TaskAbortError({
103
122
  id: params.id,
104
123
  status: task.taskStatus
105
- });
124
+ }));
106
125
  }
107
126
  let taskLog = null;
108
127
  try {
109
128
  taskLog = await context.tasks.getLatestLog(task.id);
110
- } catch (ex) {}
129
+ } catch {}
111
130
  if (!taskLog) {
112
131
  taskLog = await context.tasks.createLog(task, {
113
132
  iteration: 1,
@@ -116,12 +135,12 @@ const createTriggerTasksCrud = (context, config) => {
116
135
  }
117
136
  try {
118
137
  const updatedTask = await context.tasks.updateTask(task.id, {
119
- taskStatus: _types.TaskDataStatus.ABORTED
138
+ taskStatus: TaskDataStatus.ABORTED
120
139
  });
121
140
  await context.tasks.updateLog(taskLog.id, {
122
141
  items: taskLog.items.concat([{
123
142
  message: params.message || "Task aborted.",
124
- type: _types.ITaskLogItemType.INFO,
143
+ type: TaskLogItemType.INFO,
125
144
  createdOn: new Date().toISOString()
126
145
  }])
127
146
  });
@@ -130,13 +149,12 @@ const createTriggerTasksCrud = (context, config) => {
130
149
  */
131
150
  if (definition.onAbort) {
132
151
  await definition.onAbort({
133
- context,
134
152
  task: updatedTask
135
153
  });
136
154
  }
137
- return updatedTask;
155
+ return Result.ok(updatedTask);
138
156
  } catch (ex) {
139
- throw new _error.default(`Could not abort the task!`, "TASK_ABORT_ERROR", {
157
+ throw new WebinyError(`Could not abort the task!`, "TASK_ABORT_ERROR", {
140
158
  id: params.id,
141
159
  message: ex.message
142
160
  });
@@ -144,6 +162,5 @@ const createTriggerTasksCrud = (context, config) => {
144
162
  }
145
163
  };
146
164
  };
147
- exports.createTriggerTasksCrud = createTriggerTasksCrud;
148
165
 
149
- //# sourceMappingURL=trigger.tasks.js.map
166
+ //# sourceMappingURL=service.tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyError","TaskDataStatus","TaskLogItemType","NotFoundError","createService","Result","TaskAbortError","TaskDefinitionNotFoundError","TaskNotFoundError","TaskServiceInfoError","MAX_DELAY_DAYS","MAX_DELAY_SECONDS","validateDelay","input","delay","Number","isInteger","createServiceCrud","context","service","trigger","params","definition","id","inputValues","name","parent","tasks","getDefinition","title","definitionId","parentId","onBeforeTrigger","data","task","createTask","ex","console","log","result","send","error","deleteTask","updatedTask","updateTask","eventResponse","ok","fetchServiceInfo","getTask","info","fetch","fail","abort","PENDING","RUNNING","includes","taskStatus","status","taskLog","getLatestLog","createLog","iteration","executionName","ABORTED","updateLog","items","concat","message","type","INFO","createdOn","Date","toISOString","onAbort"],"sources":["service.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n Context,\n ITaskAbortParams,\n ITaskCreateData,\n ITaskLog,\n ITasksContextServiceObject,\n ITaskTriggerParams\n} from \"~/types.js\";\nimport { TaskDataStatus, TaskLogItemType } from \"~/types.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createService } from \"~/service/index.js\";\nimport type { IStepFunctionServiceFetchResult } from \"~/service/StepFunctionServicePlugin.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { BaseError, Result } from \"@webiny/feature/api\";\nimport {\n TaskAbortError,\n TaskDefinitionNotFoundError,\n TaskNotFoundError,\n TaskServiceInfoError\n} from \"~/domain/errors.js\";\n\nconst MAX_DELAY_DAYS = 355;\nconst MAX_DELAY_SECONDS = MAX_DELAY_DAYS * 24 * 60 * 60;\n\ninterface ValidateDelayParams<T extends TaskService.TaskInput> {\n input: ITaskCreateData<T>;\n delay?: number;\n}\n\nconst validateDelay = <T extends TaskService.TaskInput = TaskService.TaskInput>({\n input,\n delay\n}: ValidateDelayParams<T>): void => {\n if (!delay || delay < 0 || typeof delay !== \"number\" || Number.isInteger(delay) === false) {\n return;\n } else if (delay < MAX_DELAY_SECONDS) {\n return;\n }\n throw new WebinyError(\n `The maximum delay for a task is ${MAX_DELAY_DAYS} days.`,\n \"MAX_DELAY_ERROR\",\n {\n ...input,\n delay\n }\n );\n};\n\nexport const createServiceCrud = (context: Context): ITasksContextServiceObject => {\n const service = createService({\n context\n });\n\n return {\n trigger: async <\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskTriggerParams<T>\n ): Promise<Result<TaskService.Task<T, O>, BaseError>> => {\n const { definition: id, input: inputValues, name, parent, delay = 0 } = params;\n const definition = context.tasks.getDefinition(id);\n if (!definition) {\n throw new WebinyError(`Task definition was not found!`, \"TASK_DEFINITION_ERROR\", {\n id\n });\n }\n const input: TaskDefinition.TaskCreateData<T> = {\n name: name || definition.title,\n definitionId: id,\n input: inputValues || ({} as T),\n parentId: parent?.id\n };\n\n if (definition.onBeforeTrigger) {\n await definition.onBeforeTrigger({ data: input });\n }\n validateDelay<T>({\n input,\n delay\n });\n\n let task: TaskService.Task<T>;\n try {\n task = await context.tasks.createTask<T>(input);\n } catch (ex) {\n console.log(\"Could not create the task.\", ex);\n throw ex;\n }\n\n let result: Awaited<ReturnType<typeof service.send>> | null = null;\n try {\n result = await service.send(task, delay);\n\n if (!result) {\n throw new WebinyError(\n `Could not trigger the step function!`,\n \"TRIGGER_STEP_FUNCTION_ERROR\",\n {\n task\n }\n );\n }\n } catch (ex) {\n console.log(\"Could not trigger the step function.\");\n console.error(ex);\n /**\n * In case of failure to create the Event Bridge Event, we need to delete the task that was meant to be created.\n * TODO maybe we can leave the task and update it as failed - with event bridge error?\n */\n await context.tasks.deleteTask(task.id);\n throw ex;\n }\n\n const updatedTask = await context.tasks.updateTask<T, O>(task.id, {\n eventResponse: result\n });\n\n return Result.ok(updatedTask);\n },\n fetchServiceInfo: async (\n input: TaskService.Task | string\n ): Promise<Result<IStepFunctionServiceFetchResult, BaseError<any>>> => {\n const task = typeof input === \"object\" ? input : await context.tasks.getTask(input);\n if (!task && typeof input === \"string\") {\n throw new NotFoundError(`Task \"${input}\" was not found!`);\n } else if (!task) {\n throw new WebinyError(`Task was not found!`, \"TASK_FETCH_ERROR\", {\n input\n });\n }\n\n try {\n const info = (await service.fetch(task)) as IStepFunctionServiceFetchResult | null;\n if (info) {\n return Result.ok(info);\n }\n\n return Result.fail(new TaskServiceInfoError());\n } catch (ex) {\n console.log(\"Service fetch error.\");\n console.error(ex);\n return Result.fail(new TaskServiceInfoError());\n }\n },\n abort: async <\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskAbortParams\n ): Promise<Result<TaskService.Task<T, O>, BaseError<any>>> => {\n const task = await context.tasks.getTask<T, O>(params.id);\n if (!task) {\n return Result.fail(new TaskNotFoundError());\n }\n\n const definition = context.tasks.getDefinition<T, O>(task.definitionId);\n if (!definition) {\n return Result.fail(new TaskDefinitionNotFoundError(task.definitionId));\n }\n /**\n * We should only be able to abort a task which is pending or running\n */\n if (\n [TaskDataStatus.PENDING, TaskDataStatus.RUNNING].includes(task.taskStatus) === false\n ) {\n return Result.fail(\n new TaskAbortError({\n id: params.id,\n status: task.taskStatus\n })\n );\n }\n let taskLog: ITaskLog | null = null;\n try {\n taskLog = await context.tasks.getLatestLog(task.id);\n } catch {}\n if (!taskLog) {\n taskLog = await context.tasks.createLog(task, {\n iteration: 1,\n executionName: task.executionName\n });\n }\n try {\n const updatedTask = await context.tasks.updateTask<T, O>(task.id, {\n taskStatus: TaskDataStatus.ABORTED\n });\n await context.tasks.updateLog(taskLog.id, {\n items: taskLog.items.concat([\n {\n message: params.message || \"Task aborted.\",\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ])\n });\n /**\n * TODO: determine when to kick off the onAbort hook\n */\n if (definition.onAbort) {\n await definition.onAbort({\n task: updatedTask\n });\n }\n\n return Result.ok(updatedTask);\n } catch (ex) {\n throw new WebinyError(`Could not abort the task!`, \"TASK_ABORT_ERROR\", {\n id: params.id,\n message: ex.message\n });\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ import type { ITaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ /**
4
+ * RunnableTaskDecorator adds runtime behavior to TaskDefinition:
5
+ * - Applies default values (maxIterations, isPrivate, databaseLogs, fields)
6
+ * - Validates task ID (must be camelCase)
7
+ * - Provides field management methods
8
+ */
9
+ declare class RunnableTaskDecoratorImpl implements TaskDefinition.Interface {
10
+ private decoratee;
11
+ constructor(decoratee: TaskDefinition.Interface);
12
+ get id(): string;
13
+ get title(): string;
14
+ get description(): string | undefined;
15
+ get isPrivate(): boolean;
16
+ get databaseLogs(): boolean;
17
+ get maxIterations(): number;
18
+ get createInputValidation(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskCreateInputValidationParams) => import("zod").ZodType<any, import("zod").ZodTypeDef, any> | import("@webiny/api/types").GenericRecord<PropertyKey, import("zod").ZodType<any, import("zod").ZodTypeDef, any>>) | undefined;
19
+ get run(): (params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskRunParams<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResult<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
20
+ get onBeforeTrigger(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskBeforeTriggerParams<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput>) => Promise<void>) | undefined;
21
+ get onDone(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
22
+ get onError(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
23
+ get onAbort(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
24
+ get onMaxIterations(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
25
+ private validate;
26
+ getTask(): ITaskDefinition;
27
+ }
28
+ export declare const RunnableTaskDecorator: typeof RunnableTaskDecoratorImpl & {
29
+ __abstraction: import("@webiny/di").Abstraction<ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
30
+ };
31
+ export {};
@@ -0,0 +1,82 @@
1
+ import camelCase from "lodash/camelCase.js";
2
+ import WebinyError from "@webiny/error";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ const DEFAULT_MAX_ITERATIONS = 50;
5
+
6
+ /**
7
+ * RunnableTaskDecorator adds runtime behavior to TaskDefinition:
8
+ * - Applies default values (maxIterations, isPrivate, databaseLogs, fields)
9
+ * - Validates task ID (must be camelCase)
10
+ * - Provides field management methods
11
+ */
12
+ class RunnableTaskDecoratorImpl {
13
+ constructor(decoratee) {
14
+ this.decoratee = decoratee;
15
+ this.validate();
16
+ }
17
+
18
+ // Delegate simple properties
19
+ get id() {
20
+ return this.decoratee.id;
21
+ }
22
+ get title() {
23
+ return this.decoratee.title;
24
+ }
25
+ get description() {
26
+ return this.decoratee.description;
27
+ }
28
+
29
+ // Apply default values
30
+ get isPrivate() {
31
+ return this.decoratee.isPrivate ?? false;
32
+ }
33
+ get databaseLogs() {
34
+ return this.decoratee.databaseLogs ?? false;
35
+ }
36
+ get maxIterations() {
37
+ return this.decoratee.maxIterations || DEFAULT_MAX_ITERATIONS;
38
+ }
39
+ get createInputValidation() {
40
+ return this.decoratee.createInputValidation;
41
+ }
42
+
43
+ // Delegate lifecycle methods (bind to preserve context)
44
+ get run() {
45
+ return this.decoratee.run.bind(this.decoratee);
46
+ }
47
+ get onBeforeTrigger() {
48
+ return this.decoratee.onBeforeTrigger?.bind(this.decoratee);
49
+ }
50
+ get onDone() {
51
+ return this.decoratee.onDone?.bind(this.decoratee);
52
+ }
53
+ get onError() {
54
+ return this.decoratee.onError?.bind(this.decoratee);
55
+ }
56
+ get onAbort() {
57
+ return this.decoratee.onAbort?.bind(this.decoratee);
58
+ }
59
+ get onMaxIterations() {
60
+ return this.decoratee.onMaxIterations?.bind(this.decoratee);
61
+ }
62
+
63
+ // Validation logic
64
+ validate() {
65
+ if (camelCase(this.decoratee.id) !== this.decoratee.id) {
66
+ const message = `Task ID "${this.decoratee.id}" is invalid. It must be in camelCase format, for example: "myCustomTask".`;
67
+ console.log(message);
68
+ throw new WebinyError(message);
69
+ }
70
+ }
71
+
72
+ // Method to get the underlying task (for compatibility with existing code)
73
+ getTask() {
74
+ return this;
75
+ }
76
+ }
77
+ export const RunnableTaskDecorator = TaskDefinition.createDecorator({
78
+ decorator: RunnableTaskDecoratorImpl,
79
+ dependencies: []
80
+ });
81
+
82
+ //# sourceMappingURL=RunnableTaskDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["camelCase","WebinyError","TaskDefinition","DEFAULT_MAX_ITERATIONS","RunnableTaskDecoratorImpl","constructor","decoratee","validate","id","title","description","isPrivate","databaseLogs","maxIterations","createInputValidation","run","bind","onBeforeTrigger","onDone","onError","onAbort","onMaxIterations","message","console","log","getTask","RunnableTaskDecorator","createDecorator","decorator","dependencies"],"sources":["RunnableTaskDecorator.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase.js\";\nimport WebinyError from \"@webiny/error\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { ITaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nconst DEFAULT_MAX_ITERATIONS = 50;\n\n/**\n * RunnableTaskDecorator adds runtime behavior to TaskDefinition:\n * - Applies default values (maxIterations, isPrivate, databaseLogs, fields)\n * - Validates task ID (must be camelCase)\n * - Provides field management methods\n */\nclass RunnableTaskDecoratorImpl implements TaskDefinition.Interface {\n constructor(private decoratee: TaskDefinition.Interface) {\n this.validate();\n }\n\n // Delegate simple properties\n get id() {\n return this.decoratee.id;\n }\n\n get title() {\n return this.decoratee.title;\n }\n\n get description() {\n return this.decoratee.description;\n }\n\n // Apply default values\n get isPrivate() {\n return this.decoratee.isPrivate ?? false;\n }\n\n get databaseLogs() {\n return this.decoratee.databaseLogs ?? false;\n }\n\n get maxIterations() {\n return this.decoratee.maxIterations || DEFAULT_MAX_ITERATIONS;\n }\n\n get createInputValidation() {\n return this.decoratee.createInputValidation;\n }\n\n // Delegate lifecycle methods (bind to preserve context)\n get run() {\n return this.decoratee.run.bind(this.decoratee);\n }\n\n get onBeforeTrigger() {\n return this.decoratee.onBeforeTrigger?.bind(this.decoratee);\n }\n\n get onDone() {\n return this.decoratee.onDone?.bind(this.decoratee);\n }\n\n get onError() {\n return this.decoratee.onError?.bind(this.decoratee);\n }\n\n get onAbort() {\n return this.decoratee.onAbort?.bind(this.decoratee);\n }\n\n get onMaxIterations() {\n return this.decoratee.onMaxIterations?.bind(this.decoratee);\n }\n\n // Validation logic\n private validate(): void {\n if (camelCase(this.decoratee.id) !== this.decoratee.id) {\n const message = `Task ID \"${this.decoratee.id}\" is invalid. It must be in camelCase format, for example: \"myCustomTask\".`;\n console.log(message);\n throw new WebinyError(message);\n }\n }\n\n // Method to get the underlying task (for compatibility with existing code)\n public getTask(): ITaskDefinition {\n return this;\n }\n}\n\nexport const RunnableTaskDecorator = TaskDefinition.createDecorator({\n decorator: RunnableTaskDecoratorImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,WAAW,MAAM,eAAe;AACvC,SAASC,cAAc,QAAQ,wDAAwD;AAGvF,MAAMC,sBAAsB,GAAG,EAAE;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,yBAAyB,CAAqC;EAChEC,WAAWA,CAASC,SAAmC,EAAE;IAAA,KAArCA,SAAmC,GAAnCA,SAAmC;IACnD,IAAI,CAACC,QAAQ,CAAC,CAAC;EACnB;;EAEA;EACA,IAAIC,EAAEA,CAAA,EAAG;IACL,OAAO,IAAI,CAACF,SAAS,CAACE,EAAE;EAC5B;EAEA,IAAIC,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAACH,SAAS,CAACG,KAAK;EAC/B;EAEA,IAAIC,WAAWA,CAAA,EAAG;IACd,OAAO,IAAI,CAACJ,SAAS,CAACI,WAAW;EACrC;;EAEA;EACA,IAAIC,SAASA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACL,SAAS,CAACK,SAAS,IAAI,KAAK;EAC5C;EAEA,IAAIC,YAAYA,CAAA,EAAG;IACf,OAAO,IAAI,CAACN,SAAS,CAACM,YAAY,IAAI,KAAK;EAC/C;EAEA,IAAIC,aAAaA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACP,SAAS,CAACO,aAAa,IAAIV,sBAAsB;EACjE;EAEA,IAAIW,qBAAqBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACR,SAAS,CAACQ,qBAAqB;EAC/C;;EAEA;EACA,IAAIC,GAAGA,CAAA,EAAG;IACN,OAAO,IAAI,CAACT,SAAS,CAACS,GAAG,CAACC,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC;EAClD;EAEA,IAAIW,eAAeA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACX,SAAS,CAACW,eAAe,EAAED,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC;EAC/D;EAEA,IAAIY,MAAMA,CAAA,EAAG;IACT,OAAO,IAAI,CAACZ,SAAS,CAACY,MAAM,EAAEF,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC;EACtD;EAEA,IAAIa,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAACb,SAAS,CAACa,OAAO,EAAEH,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC;EACvD;EAEA,IAAIc,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAACd,SAAS,CAACc,OAAO,EAAEJ,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC;EACvD;EAEA,IAAIe,eAAeA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACf,SAAS,CAACe,eAAe,EAAEL,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC;EAC/D;;EAEA;EACQC,QAAQA,CAAA,EAAS;IACrB,IAAIP,SAAS,CAAC,IAAI,CAACM,SAAS,CAACE,EAAE,CAAC,KAAK,IAAI,CAACF,SAAS,CAACE,EAAE,EAAE;MACpD,MAAMc,OAAO,GAAG,YAAY,IAAI,CAAChB,SAAS,CAACE,EAAE,4EAA4E;MACzHe,OAAO,CAACC,GAAG,CAACF,OAAO,CAAC;MACpB,MAAM,IAAIrB,WAAW,CAACqB,OAAO,CAAC;IAClC;EACJ;;EAEA;EACOG,OAAOA,CAAA,EAAoB;IAC9B,OAAO,IAAI;EACf;AACJ;AAEA,OAAO,MAAMC,qBAAqB,GAAGxB,cAAc,CAACyB,eAAe,CAAC;EAChEC,SAAS,EAAExB,yBAAyB;EACpCyB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import { BaseError } from "@webiny/feature/api";
2
+ export declare class TaskDefinitionNotFoundError extends BaseError<{
3
+ id: string;
4
+ }> {
5
+ readonly code: "BackgroundTasks/TaskDefinition/NotFoundError";
6
+ constructor(id: string);
7
+ }
8
+ export declare class TaskNotFoundError extends BaseError {
9
+ readonly code: "BackgroundTasks/Task/NotFoundError";
10
+ constructor();
11
+ }
12
+ export declare class TaskAbortError extends BaseError<{
13
+ id: string;
14
+ status: string;
15
+ }> {
16
+ readonly code: "BackgroundTasks/Task/Abort";
17
+ constructor(data: {
18
+ id: string;
19
+ status: string;
20
+ });
21
+ }
22
+ export declare class TaskLogNotFoundError extends BaseError {
23
+ readonly code: "BackgroundTasks/Log/NotFoundError";
24
+ constructor();
25
+ }
26
+ export declare class TaskServiceInfoError extends BaseError {
27
+ readonly code: "BackgroundTasks/Service/InfoUnavailable";
28
+ constructor();
29
+ }
@@ -0,0 +1,47 @@
1
+ import { BaseError } from "@webiny/feature/api";
2
+ export class TaskDefinitionNotFoundError extends BaseError {
3
+ code = "BackgroundTasks/TaskDefinition/NotFoundError";
4
+ constructor(id) {
5
+ super({
6
+ message: "Task definition not found.",
7
+ data: {
8
+ id
9
+ }
10
+ });
11
+ }
12
+ }
13
+ export class TaskNotFoundError extends BaseError {
14
+ code = "BackgroundTasks/Task/NotFoundError";
15
+ constructor() {
16
+ super({
17
+ message: "Task not found."
18
+ });
19
+ }
20
+ }
21
+ export class TaskAbortError extends BaseError {
22
+ code = "BackgroundTasks/Task/Abort";
23
+ constructor(data) {
24
+ super({
25
+ message: "Cannot abort a task that is not pending or running!",
26
+ data
27
+ });
28
+ }
29
+ }
30
+ export class TaskLogNotFoundError extends BaseError {
31
+ code = "BackgroundTasks/Log/NotFoundError";
32
+ constructor() {
33
+ super({
34
+ message: "Task log not found."
35
+ });
36
+ }
37
+ }
38
+ export class TaskServiceInfoError extends BaseError {
39
+ code = "BackgroundTasks/Service/InfoUnavailable";
40
+ constructor() {
41
+ super({
42
+ message: "Unable to fetch service info."
43
+ });
44
+ }
45
+ }
46
+
47
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BaseError","TaskDefinitionNotFoundError","code","constructor","id","message","data","TaskNotFoundError","TaskAbortError","TaskLogNotFoundError","TaskServiceInfoError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class TaskDefinitionNotFoundError extends BaseError<{ id: string }> {\n override readonly code = \"BackgroundTasks/TaskDefinition/NotFoundError\" as const;\n\n constructor(id: string) {\n super({\n message: \"Task definition not found.\",\n data: {\n id\n }\n });\n }\n}\n\nexport class TaskNotFoundError extends BaseError {\n override readonly code = \"BackgroundTasks/Task/NotFoundError\" as const;\n\n constructor() {\n super({\n message: \"Task not found.\"\n });\n }\n}\n\nexport class TaskAbortError extends BaseError<{ id: string; status: string }> {\n override readonly code = \"BackgroundTasks/Task/Abort\" as const;\n\n constructor(data: { id: string; status: string }) {\n super({\n message: \"Cannot abort a task that is not pending or running!\",\n data\n });\n }\n}\n\nexport class TaskLogNotFoundError extends BaseError {\n override readonly code = \"BackgroundTasks/Log/NotFoundError\" as const;\n\n constructor() {\n super({\n message: \"Task log not found.\"\n });\n }\n}\n\nexport class TaskServiceInfoError extends BaseError {\n override readonly code = \"BackgroundTasks/Service/InfoUnavailable\" as const;\n\n constructor() {\n super({\n message: \"Unable to fetch service info.\"\n });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,2BAA2B,SAASD,SAAS,CAAiB;EACrDE,IAAI,GAAG,8CAA8C;EAEvEC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,4BAA4B;MACrCC,IAAI,EAAE;QACFF;MACJ;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,iBAAiB,SAASP,SAAS,CAAC;EAC3BE,IAAI,GAAG,oCAAoC;EAE7DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFE,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,cAAc,SAASR,SAAS,CAAiC;EACxDE,IAAI,GAAG,4BAA4B;EAErDC,WAAWA,CAACG,IAAoC,EAAE;IAC9C,KAAK,CAAC;MACFD,OAAO,EAAE,qDAAqD;MAC9DC;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,oBAAoB,SAAST,SAAS,CAAC;EAC9BE,IAAI,GAAG,mCAAmC;EAE5DC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFE,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMK,oBAAoB,SAASV,SAAS,CAAC;EAC9BE,IAAI,GAAG,yCAAyC;EAElEC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MACFE,OAAO,EAAE;IACb,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskAfterCreatePayload } from "./abstractions.js";
3
+ export declare class TaskAfterCreateEvent extends DomainEvent<TaskAfterCreatePayload> {
4
+ eventType: "task.afterCreate";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<TaskAfterCreatePayload>>>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskAfterCreateHandler } from "./abstractions.js";
3
+ export class TaskAfterCreateEvent extends DomainEvent {
4
+ eventType = "task.afterCreate";
5
+ getHandlerAbstraction() {
6
+ return TaskAfterCreateHandler;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=TaskAfterCreateEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","TaskAfterCreateHandler","TaskAfterCreateEvent","eventType","getHandlerAbstraction"],"sources":["TaskAfterCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { TaskAfterCreateHandler, TaskAfterCreatePayload } from \"./abstractions.js\";\n\nexport class TaskAfterCreateEvent extends DomainEvent<TaskAfterCreatePayload> {\n eventType = \"task.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return TaskAfterCreateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,sBAAsB;AAE/B,OAAO,MAAMC,oBAAoB,SAASF,WAAW,CAAyB;EAC1EG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,sBAAsB;EACjC;AACJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskAfterDeletePayload } from "./abstractions.js";
3
+ export declare class TaskAfterDeleteEvent extends DomainEvent<TaskAfterDeletePayload> {
4
+ eventType: "task.afterDelete";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<TaskAfterDeletePayload>>>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskAfterDeleteHandler } from "./abstractions.js";
3
+ export class TaskAfterDeleteEvent extends DomainEvent {
4
+ eventType = "task.afterDelete";
5
+ getHandlerAbstraction() {
6
+ return TaskAfterDeleteHandler;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=TaskAfterDeleteEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","TaskAfterDeleteHandler","TaskAfterDeleteEvent","eventType","getHandlerAbstraction"],"sources":["TaskAfterDeleteEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { TaskAfterDeleteHandler, TaskAfterDeletePayload } from \"./abstractions.js\";\n\nexport class TaskAfterDeleteEvent extends DomainEvent<TaskAfterDeletePayload> {\n eventType = \"task.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return TaskAfterDeleteHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,sBAAsB;AAE/B,OAAO,MAAMC,oBAAoB,SAASF,WAAW,CAAyB;EAC1EG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,sBAAsB;EACjC;AACJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskAfterUpdatePayload } from "./abstractions.js";
3
+ export declare class TaskAfterUpdateEvent extends DomainEvent<TaskAfterUpdatePayload> {
4
+ eventType: "task.afterUpdate";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<TaskAfterUpdatePayload>>>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskAfterUpdateHandler } from "./abstractions.js";
3
+ export class TaskAfterUpdateEvent extends DomainEvent {
4
+ eventType = "task.afterUpdate";
5
+ getHandlerAbstraction() {
6
+ return TaskAfterUpdateHandler;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=TaskAfterUpdateEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","TaskAfterUpdateHandler","TaskAfterUpdateEvent","eventType","getHandlerAbstraction"],"sources":["TaskAfterUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { TaskAfterUpdateHandler, TaskAfterUpdatePayload } from \"./abstractions.js\";\n\nexport class TaskAfterUpdateEvent extends DomainEvent<TaskAfterUpdatePayload> {\n eventType = \"task.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return TaskAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,sBAAsB;AAE/B,OAAO,MAAMC,oBAAoB,SAASF,WAAW,CAAyB;EAC1EG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,sBAAsB;EACjC;AACJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskBeforeCreatePayload } from "./abstractions.js";
3
+ export declare class TaskBeforeCreateEvent extends DomainEvent<TaskBeforeCreatePayload> {
4
+ eventType: "task.beforeCreate";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<TaskBeforeCreatePayload>>>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskBeforeCreateHandler } from "./abstractions.js";
3
+ export class TaskBeforeCreateEvent extends DomainEvent {
4
+ eventType = "task.beforeCreate";
5
+ getHandlerAbstraction() {
6
+ return TaskBeforeCreateHandler;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=TaskBeforeCreateEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","TaskBeforeCreateHandler","TaskBeforeCreateEvent","eventType","getHandlerAbstraction"],"sources":["TaskBeforeCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { TaskBeforeCreateHandler, TaskBeforeCreatePayload } from \"./abstractions.js\";\n\nexport class TaskBeforeCreateEvent extends DomainEvent<TaskBeforeCreatePayload> {\n eventType = \"task.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return TaskBeforeCreateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,qBAAqB,SAASF,WAAW,CAA0B;EAC5EG,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,uBAAuB;EAClC;AACJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskBeforeDeletePayload } from "./abstractions.js";
3
+ export declare class TaskBeforeDeleteEvent extends DomainEvent<TaskBeforeDeletePayload> {
4
+ eventType: "task.beforeDelete";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<TaskBeforeDeletePayload>>>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskBeforeDeleteHandler } from "./abstractions.js";
3
+ export class TaskBeforeDeleteEvent extends DomainEvent {
4
+ eventType = "task.beforeDelete";
5
+ getHandlerAbstraction() {
6
+ return TaskBeforeDeleteHandler;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=TaskBeforeDeleteEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","TaskBeforeDeleteHandler","TaskBeforeDeleteEvent","eventType","getHandlerAbstraction"],"sources":["TaskBeforeDeleteEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { TaskBeforeDeleteHandler, TaskBeforeDeletePayload } from \"./abstractions.js\";\n\nexport class TaskBeforeDeleteEvent extends DomainEvent<TaskBeforeDeletePayload> {\n eventType = \"task.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return TaskBeforeDeleteHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,qBAAqB,SAASF,WAAW,CAA0B;EAC5EG,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,uBAAuB;EAClC;AACJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskBeforeUpdatePayload } from "./abstractions.js";
3
+ export declare class TaskBeforeUpdateEvent extends DomainEvent<TaskBeforeUpdatePayload> {
4
+ eventType: "task.beforeUpdate";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<TaskBeforeUpdatePayload>>>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
2
+ import { TaskBeforeUpdateHandler } from "./abstractions.js";
3
+ export class TaskBeforeUpdateEvent extends DomainEvent {
4
+ eventType = "task.beforeUpdate";
5
+ getHandlerAbstraction() {
6
+ return TaskBeforeUpdateHandler;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=TaskBeforeUpdateEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DomainEvent","TaskBeforeUpdateHandler","TaskBeforeUpdateEvent","eventType","getHandlerAbstraction"],"sources":["TaskBeforeUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { TaskBeforeUpdateHandler, TaskBeforeUpdatePayload } from \"./abstractions.js\";\n\nexport class TaskBeforeUpdateEvent extends DomainEvent<TaskBeforeUpdatePayload> {\n eventType = \"task.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return TaskBeforeUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,qBAAqB,SAASF,WAAW,CAA0B;EAC5EG,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,uBAAuB;EAClC;AACJ","ignoreList":[]}