@webiny/tasks 5.41.0-dbt.0 → 5.41.1-beta.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 (78) hide show
  1. package/context.d.ts +1 -2
  2. package/context.js +8 -16
  3. package/context.js.map +1 -1
  4. package/crud/model.js +2 -2
  5. package/crud/model.js.map +1 -1
  6. package/crud/service.tasks.d.ts +2 -0
  7. package/crud/{trigger.tasks.js → service.tasks.js} +39 -17
  8. package/crud/service.tasks.js.map +1 -0
  9. package/graphql/index.js +0 -4
  10. package/graphql/index.js.map +1 -1
  11. package/graphql/utils.d.ts +2 -2
  12. package/handler/index.d.ts +1 -3
  13. package/handler/index.js.map +1 -1
  14. package/handler/register.js +4 -2
  15. package/handler/register.js.map +1 -1
  16. package/handler/types.d.ts +2 -0
  17. package/handler/types.js.map +1 -1
  18. package/package.json +20 -19
  19. package/plugins/TaskServicePlugin.d.ts +21 -0
  20. package/plugins/TaskServicePlugin.js +17 -0
  21. package/plugins/TaskServicePlugin.js.map +1 -0
  22. package/plugins/index.d.ts +1 -1
  23. package/plugins/index.js +4 -4
  24. package/plugins/index.js.map +1 -1
  25. package/response/Response.js +48 -1
  26. package/response/Response.js.map +1 -1
  27. package/response/ResponseDoneResult.js +1 -1
  28. package/response/ResponseDoneResult.js.map +1 -1
  29. package/response/TaskResponse.js +2 -2
  30. package/response/TaskResponse.js.map +1 -1
  31. package/response/abstractions/ResponseContinueResult.d.ts +1 -0
  32. package/response/abstractions/ResponseContinueResult.js.map +1 -1
  33. package/response/abstractions/ResponseErrorResult.d.ts +3 -2
  34. package/response/abstractions/ResponseErrorResult.js.map +1 -1
  35. package/response/abstractions/TaskResponse.d.ts +5 -8
  36. package/response/abstractions/TaskResponse.js.map +1 -1
  37. package/runner/TaskControl.js +44 -17
  38. package/runner/TaskControl.js.map +1 -1
  39. package/runner/TaskManager.js.map +1 -1
  40. package/runner/TaskManagerStore.d.ts +11 -2
  41. package/runner/TaskManagerStore.js +30 -6
  42. package/runner/TaskManagerStore.js.map +1 -1
  43. package/runner/abstractions/TaskManagerStore.d.ts +6 -0
  44. package/runner/abstractions/TaskManagerStore.js.map +1 -1
  45. package/runner/abstractions/TaskRunner.d.ts +4 -1
  46. package/runner/abstractions/TaskRunner.js.map +1 -1
  47. package/service/EventBridgeEventTransportPlugin.d.ts +18 -0
  48. package/{crud/transport → service}/EventBridgeEventTransportPlugin.js +9 -7
  49. package/service/EventBridgeEventTransportPlugin.js.map +1 -0
  50. package/service/StepFunctionServicePlugin.d.ts +26 -0
  51. package/service/StepFunctionServicePlugin.js +84 -0
  52. package/service/StepFunctionServicePlugin.js.map +1 -0
  53. package/service/createService.d.ts +6 -0
  54. package/service/createService.js +31 -0
  55. package/service/createService.js.map +1 -0
  56. package/service/index.d.ts +4 -0
  57. package/service/index.js +31 -0
  58. package/service/index.js.map +1 -0
  59. package/task/plugin.d.ts +3 -3
  60. package/types.d.ts +56 -56
  61. package/types.js +7 -16
  62. package/types.js.map +1 -1
  63. package/utils/getErrorProperties.d.ts +1 -1
  64. package/utils/getErrorProperties.js +3 -1
  65. package/utils/getErrorProperties.js.map +1 -1
  66. package/utils/index.d.ts +3 -0
  67. package/utils/index.js +40 -0
  68. package/utils/index.js.map +1 -0
  69. package/crud/transport/EventBridgeEventTransportPlugin.d.ts +0 -5
  70. package/crud/transport/EventBridgeEventTransportPlugin.js.map +0 -1
  71. package/crud/trigger.tasks.d.ts +0 -2
  72. package/crud/trigger.tasks.js.map +0 -1
  73. package/plugins/TaskTriggerTransportPlugin.d.ts +0 -17
  74. package/plugins/TaskTriggerTransportPlugin.js +0 -20
  75. package/plugins/TaskTriggerTransportPlugin.js.map +0 -1
  76. package/transport/createTransport.d.ts +0 -7
  77. package/transport/createTransport.js +0 -32
  78. package/transport/createTransport.js.map +0 -1
package/types.d.ts CHANGED
@@ -1,19 +1,15 @@
1
1
  import { CmsContext as BaseContext, CmsEntryListParams, CmsEntryListWhere, CmsEntryMeta, CmsModel, CmsModelField } from "@webiny/api-headless-cms/types";
2
2
  import { Topic } from "@webiny/pubsub/types";
3
3
  import { IResponseError, ITaskResponse, ITaskResponseDoneResultOutput, ITaskResponseResult } from "./response/abstractions";
4
- import { ITaskManagerStore } from "./runner/abstractions";
5
- import { PutEventsCommandOutput } from "@webiny/aws-sdk/client-eventbridge";
4
+ import { IIsCloseToTimeoutCallable, ITaskManagerStore } from "./runner/abstractions";
6
5
  import { SecurityPermission } from "@webiny/api-security/types";
7
6
  import { GenericRecord } from "@webiny/api/types";
8
- export { PutEventsCommandOutput };
7
+ import { IStepFunctionServiceFetchResult } from "./service/StepFunctionServicePlugin";
9
8
  export * from "./handler/types";
10
9
  export * from "./response/abstractions";
11
10
  export * from "./runner/abstractions";
12
- export interface ITaskConfig {
13
- readonly eventBusName: string;
14
- }
15
11
  export type ITaskDataInput = GenericRecord;
16
- export declare enum ITaskLogItemType {
12
+ export declare enum TaskLogItemType {
17
13
  INFO = "info",
18
14
  ERROR = "error"
19
15
  }
@@ -23,14 +19,14 @@ export interface ITaskLogItemData {
23
19
  export interface ITaskLogItemBase {
24
20
  message: string;
25
21
  createdOn: string;
26
- type: ITaskLogItemType;
22
+ type: TaskLogItemType;
27
23
  data?: ITaskLogItemData;
28
24
  }
29
25
  export interface ITaskLogItemInfo extends ITaskLogItemBase {
30
- type: ITaskLogItemType.INFO;
26
+ type: TaskLogItemType.INFO;
31
27
  }
32
28
  export interface ITaskLogItemError extends ITaskLogItemBase {
33
- type: ITaskLogItemType.ERROR;
29
+ type: TaskLogItemType.ERROR;
34
30
  error?: IResponseError;
35
31
  }
36
32
  export type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;
@@ -58,7 +54,7 @@ export interface ITaskIdentity {
58
54
  displayName: string | null;
59
55
  type: string;
60
56
  }
61
- export interface ITask<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
57
+ export interface ITask<T = GenericRecord, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
62
58
  /**
63
59
  * ID without the revision number (for example: #0001).
64
60
  */
@@ -74,7 +70,7 @@ export interface ITask<T = any, O extends ITaskResponseDoneResultOutput = ITaskR
74
70
  createdBy: ITaskIdentity;
75
71
  startedOn?: string;
76
72
  finishedOn?: string;
77
- eventResponse: PutEventsCommandOutput | undefined;
73
+ eventResponse: GenericRecord | undefined;
78
74
  iterations: number;
79
75
  parentId?: string;
80
76
  }
@@ -90,34 +86,36 @@ export interface IListTaskLogsResponse {
90
86
  export type ICreateTaskResponse<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITask<T, O>;
91
87
  export type IUpdateTaskResponse<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITask<T, O>;
92
88
  export type IDeleteTaskResponse = boolean;
89
+ export interface IListTaskParamsWhere extends CmsEntryListWhere {
90
+ parentId?: string;
91
+ parentId_not?: string;
92
+ parentId_in?: string[];
93
+ parentId_not_in?: string[];
94
+ definitionId?: string;
95
+ definitionId_not?: string;
96
+ definitionId_in?: string[];
97
+ definitionId_not_in?: string[];
98
+ taskStatus?: string;
99
+ taskStatus_not?: string;
100
+ taskStatus_in?: string[];
101
+ taskStatus_not_in?: string[];
102
+ }
93
103
  export interface IListTaskParams extends Omit<CmsEntryListParams, "fields" | "search"> {
94
- where?: CmsEntryListWhere & {
95
- parentId?: string;
96
- parentId_not?: string;
97
- parentId_in?: string[];
98
- parentId_not_in?: string[];
99
- definitionId?: string;
100
- definitionId_not?: string;
101
- definitionId_in?: string[];
102
- definitionId_not_in?: string[];
103
- taskStatus?: string;
104
- taskStatus_not?: string;
105
- taskStatus_in?: string[];
106
- taskStatus_not_in?: string[];
107
- };
104
+ where?: IListTaskParamsWhere;
105
+ }
106
+ export interface IListTaskLogParamsWhere extends CmsEntryListWhere {
107
+ task?: string;
108
+ task_in?: string[];
109
+ task_not?: string;
110
+ iteration?: number;
111
+ iteration_not?: number;
112
+ iteration_gte?: number;
113
+ iteration_gt?: number;
114
+ iteration_lte?: number;
115
+ iteration_lt?: number;
108
116
  }
109
117
  export interface IListTaskLogParams extends Omit<CmsEntryListParams, "fields" | "search"> {
110
- where?: CmsEntryListWhere & {
111
- task?: string;
112
- task_in?: string[];
113
- task_not?: string;
114
- iteration?: number;
115
- iteration_not?: number;
116
- iteration_gte?: number;
117
- iteration_gt?: number;
118
- iteration_lte?: number;
119
- iteration_lt?: number;
120
- };
118
+ where?: IListTaskLogParamsWhere;
121
119
  }
122
120
  export interface ITaskCreateData<T = ITaskDataInput> {
123
121
  definitionId: string;
@@ -133,7 +131,7 @@ export interface ITaskUpdateData<I = ITaskDataInput, O extends ITaskResponseDone
133
131
  executionName?: string;
134
132
  startedOn?: string;
135
133
  finishedOn?: string;
136
- eventResponse?: PutEventsCommandOutput;
134
+ eventResponse?: GenericRecord;
137
135
  iterations?: number;
138
136
  }
139
137
  export interface OnTaskBeforeCreateTopicParams {
@@ -197,15 +195,12 @@ export interface ITasksContextCrudObject {
197
195
  onTaskBeforeDelete: Topic<OnTaskBeforeDeleteTopicParams>;
198
196
  onTaskAfterDelete: Topic<OnTaskAfterDeleteTopicParams>;
199
197
  }
200
- export interface ITasksContextConfigObject {
201
- config: ITaskConfig;
202
- }
203
198
  export interface ITasksContextDefinitionObject {
204
- getDefinition: <T = ITaskDataInput>(id: string) => ITaskDefinition<Context, T> | null;
199
+ getDefinition: <C extends Context = Context, I = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(id: string) => ITaskDefinition<C, I, O> | null;
205
200
  listDefinitions: () => ITaskDefinition[];
206
201
  }
207
202
  export interface ITaskTriggerParams<I = ITaskDataInput> {
208
- parent?: ITask;
203
+ parent?: Pick<ITask, "id">;
209
204
  definition: string;
210
205
  name?: string;
211
206
  input?: I;
@@ -215,11 +210,12 @@ export interface ITaskAbortParams {
215
210
  id: string;
216
211
  message?: string;
217
212
  }
218
- export interface ITasksContextTriggerObject {
219
- trigger: <T = ITaskDataInput>(params: ITaskTriggerParams<T>) => Promise<ITask<T>>;
220
- abort: <T = ITaskDataInput>(params: ITaskAbortParams) => Promise<ITask<T>>;
213
+ export interface ITasksContextServiceObject {
214
+ trigger: <T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(params: ITaskTriggerParams<T>) => Promise<ITask<T, O>>;
215
+ abort: <T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(params: ITaskAbortParams) => Promise<ITask<T, O>>;
216
+ fetchServiceInfo: (input: ITask<any, any> | string) => Promise<IStepFunctionServiceFetchResult | null>;
221
217
  }
222
- export interface ITasksContextObject extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextTriggerObject, ITasksContextConfigObject {
218
+ export interface ITasksContextObject extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {
223
219
  }
224
220
  export interface Context extends BaseContext {
225
221
  tasks: ITasksContextObject;
@@ -227,23 +223,23 @@ export interface Context extends BaseContext {
227
223
  export interface ITaskRunParams<C extends Context, I = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
228
224
  context: C;
229
225
  response: ITaskResponse<I, O>;
230
- isCloseToTimeout(seconds?: number): boolean;
226
+ isCloseToTimeout: IIsCloseToTimeoutCallable;
231
227
  isAborted(): boolean;
232
228
  input: I;
233
229
  store: ITaskManagerStore<I>;
234
230
  trigger<SI = ITaskDataInput>(params: Omit<ITaskTriggerParams<SI>, "parent">): Promise<ITask<SI>>;
235
231
  }
236
- export interface ITaskOnSuccessParams<C extends Context, I = ITaskDataInput> {
232
+ export interface ITaskOnSuccessParams<C extends Context, I = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
237
233
  context: C;
238
- task: ITask<I>;
234
+ task: ITask<I, O>;
239
235
  }
240
- export interface ITaskOnErrorParams<C extends Context, I = ITaskDataInput> {
236
+ export interface ITaskOnErrorParams<C extends Context, I = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
241
237
  context: C;
242
- task: ITask<I>;
238
+ task: ITask<I, O>;
243
239
  }
244
- export interface ITaskOnAbortParams<C extends Context> {
240
+ export interface ITaskOnAbortParams<C extends Context, I = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
245
241
  context: C;
246
- task: ITask;
242
+ task: ITask<I, O>;
247
243
  }
248
244
  export interface ITaskOnMaxIterationsParams<C extends Context> {
249
245
  context: C;
@@ -281,6 +277,10 @@ export interface ITaskDefinition<C extends Context = Context, I = ITaskDataInput
281
277
  * Maximum number a step function can call the Lambda.
282
278
  */
283
279
  maxIterations: number;
280
+ /**
281
+ * Disable storing logs in database for this task.
282
+ */
283
+ disableDatabaseLogs?: boolean;
284
284
  /**
285
285
  * Task run method.
286
286
  */
@@ -294,7 +294,7 @@ export interface ITaskDefinition<C extends Context = Context, I = ITaskDataInput
294
294
  * When task successfully finishes, this method will be called.
295
295
  * This will be called during the run time of the task.
296
296
  */
297
- onDone?(params: ITaskOnSuccessParams<C, I>): Promise<void>;
297
+ onDone?(params: ITaskOnSuccessParams<C, I, O>): Promise<void>;
298
298
  /**
299
299
  * When task fails, this method will be called.
300
300
  * This will be called during the run time of the task.
@@ -304,7 +304,7 @@ export interface ITaskDefinition<C extends Context = Context, I = ITaskDataInput
304
304
  * When task is aborted, this method will be called.
305
305
  * This method will be called when user aborts the task.
306
306
  */
307
- onAbort?(params: ITaskOnAbortParams<C>): Promise<void>;
307
+ onAbort?(params: ITaskOnAbortParams<C, I, O>): Promise<void>;
308
308
  /**
309
309
  * When task hits max iterations, this method will be called.
310
310
  * This will be called during the run time of the task.
package/types.js CHANGED
@@ -4,20 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
- ITaskLogItemType: true,
7
+ TaskLogItemType: true,
8
8
  TaskDataStatus: true,
9
- TaskResponseStatus: true,
10
- PutEventsCommandOutput: true
9
+ TaskResponseStatus: true
11
10
  };
12
- exports.ITaskLogItemType = void 0;
13
- Object.defineProperty(exports, "PutEventsCommandOutput", {
14
- enumerable: true,
15
- get: function () {
16
- return _clientEventbridge.PutEventsCommandOutput;
17
- }
18
- });
19
- exports.TaskResponseStatus = exports.TaskDataStatus = void 0;
20
- var _clientEventbridge = require("@webiny/aws-sdk/client-eventbridge");
11
+ exports.TaskResponseStatus = exports.TaskLogItemType = exports.TaskDataStatus = void 0;
21
12
  var _types = require("./handler/types");
22
13
  Object.keys(_types).forEach(function (key) {
23
14
  if (key === "default" || key === "__esModule") return;
@@ -54,10 +45,10 @@ Object.keys(_abstractions2).forEach(function (key) {
54
45
  }
55
46
  });
56
47
  });
57
- let ITaskLogItemType = exports.ITaskLogItemType = /*#__PURE__*/function (ITaskLogItemType) {
58
- ITaskLogItemType["INFO"] = "info";
59
- ITaskLogItemType["ERROR"] = "error";
60
- return ITaskLogItemType;
48
+ let TaskLogItemType = exports.TaskLogItemType = /*#__PURE__*/function (TaskLogItemType) {
49
+ TaskLogItemType["INFO"] = "info";
50
+ TaskLogItemType["ERROR"] = "error";
51
+ return TaskLogItemType;
61
52
  }({});
62
53
  let TaskDataStatus = exports.TaskDataStatus = /*#__PURE__*/function (TaskDataStatus) {
63
54
  TaskDataStatus["PENDING"] = "pending";
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_clientEventbridge","require","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_abstractions","_abstractions2","ITaskLogItemType","TaskDataStatus","TaskResponseStatus"],"sources":["types.ts"],"sourcesContent":["import {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryListWhere,\n CmsEntryMeta,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport {\n IResponseError,\n ITaskResponse,\n ITaskResponseDoneResultOutput,\n ITaskResponseResult\n} from \"~/response/abstractions\";\nimport { ITaskManagerStore } from \"./runner/abstractions\";\nimport { PutEventsCommandOutput } from \"@webiny/aws-sdk/client-eventbridge\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nexport { PutEventsCommandOutput };\n\nexport * from \"./handler/types\";\nexport * from \"./response/abstractions\";\nexport * from \"./runner/abstractions\";\n\nexport interface ITaskConfig {\n readonly eventBusName: string;\n}\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum ITaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: ITaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: ITaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: ITaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string | null;\n type: string;\n}\n\nexport interface ITask<\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n name: string;\n taskStatus: TaskDataStatus;\n definitionId: string;\n executionName: string;\n input: T;\n output?: O;\n createdOn: string;\n savedOn: string;\n createdBy: ITaskIdentity;\n startedOn?: string;\n finishedOn?: string;\n eventResponse: PutEventsCommandOutput | undefined;\n iterations: number;\n parentId?: string;\n}\n\nexport type IGetTaskResponse<\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n items: ITask<T, O>[];\n meta: CmsEntryMeta;\n}\n\nexport interface IListTaskLogsResponse {\n items: ITaskLog[];\n meta: CmsEntryMeta;\n}\n\nexport type ICreateTaskResponse<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: CmsEntryListWhere & {\n parentId?: string;\n parentId_not?: string;\n parentId_in?: string[];\n parentId_not_in?: string[];\n definitionId?: string;\n definitionId_not?: string;\n definitionId_in?: string[];\n definitionId_not_in?: string[];\n taskStatus?: string;\n taskStatus_not?: string;\n taskStatus_in?: string[];\n taskStatus_not_in?: string[];\n };\n}\nexport interface IListTaskLogParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: CmsEntryListWhere & {\n task?: string;\n task_in?: string[];\n task_not?: string;\n iteration?: number;\n iteration_not?: number;\n iteration_gte?: number;\n iteration_gt?: number;\n iteration_lte?: number;\n iteration_lt?: number;\n };\n}\n\nexport interface ITaskCreateData<T = ITaskDataInput> {\n definitionId: string;\n name: string;\n input: T;\n parentId?: string;\n}\n\nexport interface ITaskUpdateData<\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n name?: string;\n input?: I;\n output?: O;\n taskStatus?: TaskDataStatus;\n executionName?: string;\n startedOn?: string;\n finishedOn?: string;\n eventResponse?: PutEventsCommandOutput;\n iterations?: number;\n}\n\nexport interface OnTaskBeforeCreateTopicParams {\n input: ITaskCreateData;\n}\n\nexport interface OnTaskAfterCreateTopicParams {\n input: ITaskCreateData;\n task: ITask;\n}\n\nexport interface OnTaskBeforeUpdateTopicParams {\n input: ITaskUpdateData;\n original: ITask;\n}\n\nexport interface OnTaskAfterUpdateTopicParams {\n input: ITaskUpdateData;\n task: ITask;\n}\n\nexport interface OnTaskBeforeDeleteTopicParams {\n task: ITask;\n}\n\nexport interface OnTaskAfterDeleteTopicParams {\n task: ITask;\n}\n\nexport interface ITaskLogCreateInput {\n executionName: string;\n iteration: number;\n}\n\nexport interface ITaskLogUpdateInput {\n items?: ITaskLogItem[];\n}\n\nexport interface ITasksContextCrudObject {\n /**\n * Models\n */\n getTaskModel(): Promise<CmsModel>;\n getLogModel(): Promise<CmsModel>;\n /**\n * Tasks\n */\n getTask<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(\n id: string\n ): Promise<IGetTaskResponse<T, O> | null>;\n listTasks<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(\n params?: IListTaskParams\n ): Promise<IListTasksResponse<T, O>>;\n createTask<T = any>(task: ITaskCreateData<T>): Promise<ICreateTaskResponse<T>>;\n updateTask<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string,\n data: Partial<ITaskUpdateData<T, O>>\n ): Promise<IUpdateTaskResponse<T, O>>;\n deleteTask(id: string): Promise<IDeleteTaskResponse>;\n /**\n * Logs\n */\n createLog(task: Pick<ITask, \"id\">, data: ITaskLogCreateInput): Promise<ITaskLog>;\n updateLog(id: string, data: ITaskLogUpdateInput): Promise<ITaskLog>;\n deleteLog(id: string): Promise<boolean>;\n getLog(id: string): Promise<ITaskLog | null>;\n getLatestLog(taskId: string): Promise<ITaskLog>;\n listLogs(params: IListTaskLogParams): Promise<IListTaskLogsResponse>;\n /**\n * Lifecycle events.\n */\n onTaskBeforeCreate: Topic<OnTaskBeforeCreateTopicParams>;\n onTaskAfterCreate: Topic<OnTaskAfterCreateTopicParams>;\n onTaskBeforeUpdate: Topic<OnTaskBeforeUpdateTopicParams>;\n onTaskAfterUpdate: Topic<OnTaskAfterUpdateTopicParams>;\n onTaskBeforeDelete: Topic<OnTaskBeforeDeleteTopicParams>;\n onTaskAfterDelete: Topic<OnTaskAfterDeleteTopicParams>;\n}\n\nexport interface ITasksContextConfigObject {\n config: ITaskConfig;\n}\n\nexport interface ITasksContextDefinitionObject {\n getDefinition: <T = ITaskDataInput>(id: string) => ITaskDefinition<Context, T> | null;\n listDefinitions: () => ITaskDefinition[];\n}\n\nexport interface ITaskTriggerParams<I = ITaskDataInput> {\n parent?: ITask;\n definition: string;\n name?: string;\n input?: I;\n delay?: number;\n}\n\nexport interface ITaskAbortParams {\n id: string;\n message?: string;\n}\n\nexport interface ITasksContextTriggerObject {\n trigger: <T = ITaskDataInput>(params: ITaskTriggerParams<T>) => Promise<ITask<T>>;\n abort: <T = ITaskDataInput>(params: ITaskAbortParams) => Promise<ITask<T>>;\n}\n\nexport interface ITasksContextObject\n extends ITasksContextCrudObject,\n ITasksContextDefinitionObject,\n ITasksContextTriggerObject,\n ITasksContextConfigObject {}\n\nexport interface Context extends BaseContext {\n tasks: ITasksContextObject;\n}\n\nexport interface ITaskRunParams<\n C extends Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n context: C;\n response: ITaskResponse<I, O>;\n isCloseToTimeout(seconds?: number): boolean;\n isAborted(): boolean;\n input: I;\n store: ITaskManagerStore<I>;\n trigger<SI = ITaskDataInput>(\n params: Omit<ITaskTriggerParams<SI>, \"parent\">\n ): Promise<ITask<SI>>;\n}\n\nexport interface ITaskOnSuccessParams<C extends Context, I = ITaskDataInput> {\n context: C;\n task: ITask<I>;\n}\n\nexport interface ITaskOnErrorParams<C extends Context, I = ITaskDataInput> {\n context: C;\n task: ITask<I>;\n}\n\nexport interface ITaskOnAbortParams<C extends Context> {\n context: C;\n task: ITask;\n}\n\nexport interface ITaskOnMaxIterationsParams<C extends Context> {\n context: C;\n task: ITask;\n}\n\nexport enum TaskResponseStatus {\n DONE = \"done\",\n ERROR = \"error\",\n CONTINUE = \"continue\",\n ABORTED = \"aborted\"\n}\n\nexport type ITaskDefinitionField = Pick<\n CmsModelField,\n | \"fieldId\"\n | \"type\"\n | \"label\"\n | \"renderer\"\n | \"helpText\"\n | \"placeholderText\"\n | \"predefinedValues\"\n | \"validation\"\n | \"listValidation\"\n | \"multipleValues\"\n | \"settings\"\n>;\n\nexport interface ITaskBeforeTriggerParams<C extends Context = Context, I = ITaskDataInput> {\n context: C;\n data: ITaskCreateData<I>;\n}\n\nexport interface ITaskDefinition<\n C extends Context = Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n /**\n * ID of the task must be unique in the system.\n * It should be in camelCase format, for example: \"myCustomTask\".\n *\n * TODO: figure out a way to force camelCase in types.\n * CamelCase from type-fest does not help with this.\n */\n id: string;\n /**\n * Name should be unique, as it will get used to identify the task in the UI.\n */\n title: string;\n /**\n * A description of the task, for the UI.\n */\n description?: string;\n /**\n * Maximum number a step function can call the Lambda.\n */\n maxIterations: number;\n /**\n * Task run method.\n */\n run(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult>;\n /**\n * When a new task is about to be triggered, we will run this method.\n * For example, you can use this method to check if there is a task of the same type already running.\n */\n onBeforeTrigger?<T = ITaskDataInput>(params: ITaskBeforeTriggerParams<C, T>): Promise<void>;\n /**\n * When task successfully finishes, this method will be called.\n * This will be called during the run time of the task.\n */\n onDone?(params: ITaskOnSuccessParams<C, I>): Promise<void>;\n /**\n * When task fails, this method will be called.\n * This will be called during the run time of the task.\n */\n onError?(params: ITaskOnErrorParams<C, I>): Promise<void>;\n /**\n * When task is aborted, this method will be called.\n * This method will be called when user aborts the task.\n */\n onAbort?(params: ITaskOnAbortParams<C>): Promise<void>;\n /**\n * When task hits max iterations, this method will be called.\n * This will be called during the run time of the task.\n */\n onMaxIterations?(params: ITaskOnMaxIterationsParams<C>): Promise<void>;\n /**\n * Custom input fields and layout for the task input.\n */\n fields?: ITaskDefinitionField[];\n /**\n * Is the task visible when listing?\n */\n isPrivate?: boolean;\n}\n\nexport interface TaskPermission extends SecurityPermission {\n name: \"task\";\n rwd?: string;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAAA,kBAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,cAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,cAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,cAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,cAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAAsC,IAQ1BW,gBAAgB,GAAAN,OAAA,CAAAM,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAA,IAwChBC,cAAc,GAAAP,OAAA,CAAAO,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAA,IA+QdC,kBAAkB,GAAAR,OAAA,CAAAQ,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_abstractions","_abstractions2","TaskLogItemType","TaskDataStatus","TaskResponseStatus"],"sources":["types.ts"],"sourcesContent":["import {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryListWhere,\n CmsEntryMeta,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport {\n IResponseError,\n ITaskResponse,\n ITaskResponseDoneResultOutput,\n ITaskResponseResult\n} from \"~/response/abstractions\";\nimport { IIsCloseToTimeoutCallable, ITaskManagerStore } from \"./runner/abstractions\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { GenericRecord } from \"@webiny/api/types\";\nimport { IStepFunctionServiceFetchResult } from \"~/service/StepFunctionServicePlugin\";\n\nexport * from \"./handler/types\";\nexport * from \"./response/abstractions\";\nexport * from \"./runner/abstractions\";\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum TaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: TaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: TaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: TaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string | null;\n type: string;\n}\n\nexport interface ITask<\n T = GenericRecord,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n name: string;\n taskStatus: TaskDataStatus;\n definitionId: string;\n executionName: string;\n input: T;\n output?: O;\n createdOn: string;\n savedOn: string;\n createdBy: ITaskIdentity;\n startedOn?: string;\n finishedOn?: string;\n eventResponse: GenericRecord | undefined;\n iterations: number;\n parentId?: string;\n}\n\nexport type IGetTaskResponse<\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n items: ITask<T, O>[];\n meta: CmsEntryMeta;\n}\n\nexport interface IListTaskLogsResponse {\n items: ITaskLog[];\n meta: CmsEntryMeta;\n}\n\nexport type ICreateTaskResponse<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParamsWhere extends CmsEntryListWhere {\n parentId?: string;\n parentId_not?: string;\n parentId_in?: string[];\n parentId_not_in?: string[];\n definitionId?: string;\n definitionId_not?: string;\n definitionId_in?: string[];\n definitionId_not_in?: string[];\n taskStatus?: string;\n taskStatus_not?: string;\n taskStatus_in?: string[];\n taskStatus_not_in?: string[];\n}\n\nexport interface IListTaskParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: IListTaskParamsWhere;\n}\n\nexport interface IListTaskLogParamsWhere extends CmsEntryListWhere {\n task?: string;\n task_in?: string[];\n task_not?: string;\n iteration?: number;\n iteration_not?: number;\n iteration_gte?: number;\n iteration_gt?: number;\n iteration_lte?: number;\n iteration_lt?: number;\n}\n\nexport interface IListTaskLogParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: IListTaskLogParamsWhere;\n}\n\nexport interface ITaskCreateData<T = ITaskDataInput> {\n definitionId: string;\n name: string;\n input: T;\n parentId?: string;\n}\n\nexport interface ITaskUpdateData<\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n name?: string;\n input?: I;\n output?: O;\n taskStatus?: TaskDataStatus;\n executionName?: string;\n startedOn?: string;\n finishedOn?: string;\n eventResponse?: GenericRecord;\n iterations?: number;\n}\n\nexport interface OnTaskBeforeCreateTopicParams {\n input: ITaskCreateData;\n}\n\nexport interface OnTaskAfterCreateTopicParams {\n input: ITaskCreateData;\n task: ITask;\n}\n\nexport interface OnTaskBeforeUpdateTopicParams {\n input: ITaskUpdateData;\n original: ITask;\n}\n\nexport interface OnTaskAfterUpdateTopicParams {\n input: ITaskUpdateData;\n task: ITask;\n}\n\nexport interface OnTaskBeforeDeleteTopicParams {\n task: ITask;\n}\n\nexport interface OnTaskAfterDeleteTopicParams {\n task: ITask;\n}\n\nexport interface ITaskLogCreateInput {\n executionName: string;\n iteration: number;\n}\n\nexport interface ITaskLogUpdateInput {\n items?: ITaskLogItem[];\n}\n\nexport interface ITasksContextCrudObject {\n /**\n * Models\n */\n getTaskModel(): Promise<CmsModel>;\n getLogModel(): Promise<CmsModel>;\n /**\n * Tasks\n */\n getTask<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(\n id: string\n ): Promise<IGetTaskResponse<T, O> | null>;\n listTasks<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(\n params?: IListTaskParams\n ): Promise<IListTasksResponse<T, O>>;\n createTask<T = any>(task: ITaskCreateData<T>): Promise<ICreateTaskResponse<T>>;\n updateTask<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string,\n data: Partial<ITaskUpdateData<T, O>>\n ): Promise<IUpdateTaskResponse<T, O>>;\n deleteTask(id: string): Promise<IDeleteTaskResponse>;\n /**\n * Logs\n */\n createLog(task: Pick<ITask, \"id\">, data: ITaskLogCreateInput): Promise<ITaskLog>;\n updateLog(id: string, data: ITaskLogUpdateInput): Promise<ITaskLog>;\n deleteLog(id: string): Promise<boolean>;\n getLog(id: string): Promise<ITaskLog | null>;\n getLatestLog(taskId: string): Promise<ITaskLog>;\n listLogs(params: IListTaskLogParams): Promise<IListTaskLogsResponse>;\n /**\n * Lifecycle events.\n */\n onTaskBeforeCreate: Topic<OnTaskBeforeCreateTopicParams>;\n onTaskAfterCreate: Topic<OnTaskAfterCreateTopicParams>;\n onTaskBeforeUpdate: Topic<OnTaskBeforeUpdateTopicParams>;\n onTaskAfterUpdate: Topic<OnTaskAfterUpdateTopicParams>;\n onTaskBeforeDelete: Topic<OnTaskBeforeDeleteTopicParams>;\n onTaskAfterDelete: Topic<OnTaskAfterDeleteTopicParams>;\n}\n\nexport interface ITasksContextDefinitionObject {\n getDefinition: <\n C extends Context = Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string\n ) => ITaskDefinition<C, I, O> | null;\n listDefinitions: () => ITaskDefinition[];\n}\n\nexport interface ITaskTriggerParams<I = ITaskDataInput> {\n parent?: Pick<ITask, \"id\">;\n definition: string;\n name?: string;\n input?: I;\n delay?: number;\n}\n\nexport interface ITaskAbortParams {\n id: string;\n message?: string;\n}\n\nexport interface ITasksContextServiceObject {\n trigger: <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params: ITaskTriggerParams<T>\n ) => Promise<ITask<T, O>>;\n abort: <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params: ITaskAbortParams\n ) => Promise<ITask<T, O>>;\n fetchServiceInfo: (\n input: ITask<any, any> | string\n ) => Promise<IStepFunctionServiceFetchResult | null>;\n}\n\nexport interface ITasksContextObject\n extends ITasksContextCrudObject,\n ITasksContextDefinitionObject,\n ITasksContextServiceObject {}\n\nexport interface Context extends BaseContext {\n tasks: ITasksContextObject;\n}\n\nexport interface ITaskRunParams<\n C extends Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n context: C;\n response: ITaskResponse<I, O>;\n isCloseToTimeout: IIsCloseToTimeoutCallable;\n isAborted(): boolean;\n input: I;\n store: ITaskManagerStore<I>;\n trigger<SI = ITaskDataInput>(\n params: Omit<ITaskTriggerParams<SI>, \"parent\">\n ): Promise<ITask<SI>>;\n}\n\nexport interface ITaskOnSuccessParams<\n C extends Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n context: C;\n task: ITask<I, O>;\n}\n\nexport interface ITaskOnErrorParams<\n C extends Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n context: C;\n task: ITask<I, O>;\n}\n\nexport interface ITaskOnAbortParams<\n C extends Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n context: C;\n task: ITask<I, O>;\n}\n\nexport interface ITaskOnMaxIterationsParams<C extends Context> {\n context: C;\n task: ITask;\n}\n\nexport enum TaskResponseStatus {\n DONE = \"done\",\n ERROR = \"error\",\n CONTINUE = \"continue\",\n ABORTED = \"aborted\"\n}\n\nexport type ITaskDefinitionField = Pick<\n CmsModelField,\n | \"fieldId\"\n | \"type\"\n | \"label\"\n | \"renderer\"\n | \"helpText\"\n | \"placeholderText\"\n | \"predefinedValues\"\n | \"validation\"\n | \"listValidation\"\n | \"multipleValues\"\n | \"settings\"\n>;\n\nexport interface ITaskBeforeTriggerParams<C extends Context = Context, I = ITaskDataInput> {\n context: C;\n data: ITaskCreateData<I>;\n}\n\nexport interface ITaskDefinition<\n C extends Context = Context,\n I = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n /**\n * ID of the task must be unique in the system.\n * It should be in camelCase format, for example: \"myCustomTask\".\n *\n * TODO: figure out a way to force camelCase in types.\n * CamelCase from type-fest does not help with this.\n */\n id: string;\n /**\n * Name should be unique, as it will get used to identify the task in the UI.\n */\n title: string;\n /**\n * A description of the task, for the UI.\n */\n description?: string;\n /**\n * Maximum number a step function can call the Lambda.\n */\n maxIterations: number;\n /**\n * Disable storing logs in database for this task.\n */\n disableDatabaseLogs?: boolean;\n /**\n * Task run method.\n */\n run(params: ITaskRunParams<C, I, O>): Promise<ITaskResponseResult>;\n /**\n * When a new task is about to be triggered, we will run this method.\n * For example, you can use this method to check if there is a task of the same type already running.\n */\n onBeforeTrigger?<T = ITaskDataInput>(params: ITaskBeforeTriggerParams<C, T>): Promise<void>;\n /**\n * When task successfully finishes, this method will be called.\n * This will be called during the run time of the task.\n */\n onDone?(params: ITaskOnSuccessParams<C, I, O>): Promise<void>;\n /**\n * When task fails, this method will be called.\n * This will be called during the run time of the task.\n */\n onError?(params: ITaskOnErrorParams<C, I>): Promise<void>;\n /**\n * When task is aborted, this method will be called.\n * This method will be called when user aborts the task.\n */\n onAbort?(params: ITaskOnAbortParams<C, I, O>): Promise<void>;\n /**\n * When task hits max iterations, this method will be called.\n * This will be called during the run time of the task.\n */\n onMaxIterations?(params: ITaskOnMaxIterationsParams<C>): Promise<void>;\n /**\n * Custom input fields and layout for the task input.\n */\n fields?: ITaskDefinitionField[];\n /**\n * Is the task visible when listing?\n */\n isPrivate?: boolean;\n}\n\nexport interface TaskPermission extends SecurityPermission {\n name: \"task\";\n rwd?: string;\n}\n"],"mappings":";;;;;;;;;;;AAoBA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,cAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,cAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,cAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,cAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAAsC,IAI1BW,eAAe,GAAAN,OAAA,CAAAM,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAwCfC,cAAc,GAAAP,OAAA,CAAAO,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAA,IA8SdC,kBAAkB,GAAAR,OAAA,CAAAQ,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import { IResponseError } from "../response/abstractions";
2
- export declare const getErrorProperties: (error: Error) => IResponseError;
2
+ export declare const getErrorProperties: (error: Error | IResponseError) => IResponseError;
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getErrorProperties = void 0;
7
7
  var _getObjectProperties = require("./getObjectProperties");
8
8
  const getErrorProperties = error => {
9
- return (0, _getObjectProperties.getObjectProperties)(error);
9
+ const value = (0, _getObjectProperties.getObjectProperties)(error);
10
+ delete value.stack;
11
+ return value;
10
12
  };
11
13
  exports.getErrorProperties = getErrorProperties;
12
14
 
@@ -1 +1 @@
1
- {"version":3,"names":["_getObjectProperties","require","getErrorProperties","error","getObjectProperties","exports"],"sources":["getErrorProperties.ts"],"sourcesContent":["import { IResponseError } from \"~/response/abstractions\";\nimport { getObjectProperties } from \"~/utils/getObjectProperties\";\n\nexport const getErrorProperties = (error: Error): IResponseError => {\n return getObjectProperties<IResponseError>(error);\n};\n"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AAEO,MAAMC,kBAAkB,GAAIC,KAAY,IAAqB;EAChE,OAAO,IAAAC,wCAAmB,EAAiBD,KAAK,CAAC;AACrD,CAAC;AAACE,OAAA,CAAAH,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_getObjectProperties","require","getErrorProperties","error","value","getObjectProperties","stack","exports"],"sources":["getErrorProperties.ts"],"sourcesContent":["import { IResponseError } from \"~/response/abstractions\";\nimport { getObjectProperties } from \"~/utils/getObjectProperties\";\n\nexport const getErrorProperties = (error: Error | IResponseError): IResponseError => {\n const value = getObjectProperties<IResponseError>(error);\n\n delete value.stack;\n\n return value;\n};\n"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AAEO,MAAMC,kBAAkB,GAAIC,KAA6B,IAAqB;EACjF,MAAMC,KAAK,GAAG,IAAAC,wCAAmB,EAAiBF,KAAK,CAAC;EAExD,OAAOC,KAAK,CAACE,KAAK;EAElB,OAAOF,KAAK;AAChB,CAAC;AAACG,OAAA,CAAAL,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export * from "./getErrorProperties";
2
+ export * from "./getObjectProperties";
3
+ export * from "./ObjectUpdater";
package/utils/index.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _getErrorProperties = require("./getErrorProperties");
7
+ Object.keys(_getErrorProperties).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _getErrorProperties[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _getErrorProperties[key];
14
+ }
15
+ });
16
+ });
17
+ var _getObjectProperties = require("./getObjectProperties");
18
+ Object.keys(_getObjectProperties).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _getObjectProperties[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _getObjectProperties[key];
25
+ }
26
+ });
27
+ });
28
+ var _ObjectUpdater = require("./ObjectUpdater");
29
+ Object.keys(_ObjectUpdater).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _ObjectUpdater[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _ObjectUpdater[key];
36
+ }
37
+ });
38
+ });
39
+
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_getErrorProperties","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getObjectProperties","_ObjectUpdater"],"sources":["index.ts"],"sourcesContent":["export * from \"./getErrorProperties\";\nexport * from \"./getObjectProperties\";\nexport * from \"./ObjectUpdater\";\n"],"mappings":";;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,mBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,mBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,mBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,oBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,oBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,oBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,oBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,cAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,cAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,cAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,cAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- import { ITaskTriggerTransport, ITaskTriggerTransportPluginParams, TaskTriggerTransportPlugin } from "../../plugins";
2
- export declare class EventBridgeEventTransportPlugin extends TaskTriggerTransportPlugin {
3
- name: string;
4
- createTransport(params: ITaskTriggerTransportPluginParams): ITaskTriggerTransport;
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"names":["_plugins","require","_clientEventbridge","_error","EventBridgeEventTransport","constructor","params","client","EventBridgeClient","region","process","env","AWS_REGION","context","config","getTenant","getLocale","send","task","delay","event","webinyTaskId","id","webinyTaskDefinitionId","definitionId","tenant","locale","cmd","PutEventsCommand","Entries","Source","EventBusName","eventBusName","DetailType","Detail","JSON","stringify","ex","WebinyError","message","code","data","EventBridgeEventTransportPlugin","TaskTriggerTransportPlugin","name","createTransport","exports"],"sources":["EventBridgeEventTransportPlugin.ts"],"sourcesContent":["import {\n ITaskTriggerTransport,\n ITaskTriggerTransportPluginParams,\n PutEventsCommandOutput,\n TaskTriggerTransportPlugin\n} from \"~/plugins\";\nimport { Context, ITask, ITaskConfig, ITaskEventInput } from \"~/types\";\nimport { EventBridgeClient, PutEventsCommand } from \"@webiny/aws-sdk/client-eventbridge\";\nimport { WebinyError } from \"@webiny/error\";\n\nclass EventBridgeEventTransport implements ITaskTriggerTransport {\n protected readonly context: Context;\n protected readonly config: ITaskConfig;\n protected readonly getTenant: () => string;\n protected readonly getLocale: () => string;\n private readonly client: EventBridgeClient;\n\n public constructor(params: ITaskTriggerTransportPluginParams) {\n this.client = new EventBridgeClient({\n region: process.env.AWS_REGION\n });\n this.context = params.context;\n this.config = params.config;\n this.getTenant = params.getTenant;\n this.getLocale = params.getLocale;\n }\n\n public async send(\n task: Pick<ITask, \"id\" | \"definitionId\">,\n delay: number\n ): Promise<PutEventsCommandOutput> {\n /**\n * The ITaskEvent is what our handler expect to get.\n * Endpoint and stateMachineId are added by the step function.\n */\n const event: ITaskEventInput = {\n webinyTaskId: task.id,\n webinyTaskDefinitionId: task.definitionId,\n tenant: this.getTenant(),\n locale: this.getLocale(),\n delay\n };\n\n const cmd = new PutEventsCommand({\n Entries: [\n {\n Source: \"webiny-api-tasks\",\n EventBusName: this.config.eventBusName,\n DetailType: \"WebinyBackgroundTask\",\n Detail: JSON.stringify(event)\n }\n ]\n });\n try {\n return await this.client.send(cmd);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not trigger task via Event Bridge!\",\n ex.code || \"TRIGGER_TASK_ERROR\",\n {\n event,\n ...(ex.data || {})\n }\n );\n }\n }\n}\n\nexport class EventBridgeEventTransportPlugin extends TaskTriggerTransportPlugin {\n public override name = \"task.eventBridgeEventTransport\";\n public createTransport(params: ITaskTriggerTransportPluginParams): ITaskTriggerTransport {\n return new EventBridgeEventTransport(params);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,MAAMG,yBAAyB,CAAkC;EAOtDC,WAAWA,CAACC,MAAyC,EAAE;IAC1D,IAAI,CAACC,MAAM,GAAG,IAAIC,oCAAiB,CAAC;MAChCC,MAAM,EAAEC,OAAO,CAACC,GAAG,CAACC;IACxB,CAAC,CAAC;IACF,IAAI,CAACC,OAAO,GAAGP,MAAM,CAACO,OAAO;IAC7B,IAAI,CAACC,MAAM,GAAGR,MAAM,CAACQ,MAAM;IAC3B,IAAI,CAACC,SAAS,GAAGT,MAAM,CAACS,SAAS;IACjC,IAAI,CAACC,SAAS,GAAGV,MAAM,CAACU,SAAS;EACrC;EAEA,MAAaC,IAAIA,CACbC,IAAwC,EACxCC,KAAa,EACkB;IAC/B;AACR;AACA;AACA;IACQ,MAAMC,KAAsB,GAAG;MAC3BC,YAAY,EAAEH,IAAI,CAACI,EAAE;MACrBC,sBAAsB,EAAEL,IAAI,CAACM,YAAY;MACzCC,MAAM,EAAE,IAAI,CAACV,SAAS,CAAC,CAAC;MACxBW,MAAM,EAAE,IAAI,CAACV,SAAS,CAAC,CAAC;MACxBG;IACJ,CAAC;IAED,MAAMQ,GAAG,GAAG,IAAIC,mCAAgB,CAAC;MAC7BC,OAAO,EAAE,CACL;QACIC,MAAM,EAAE,kBAAkB;QAC1BC,YAAY,EAAE,IAAI,CAACjB,MAAM,CAACkB,YAAY;QACtCC,UAAU,EAAE,sBAAsB;QAClCC,MAAM,EAAEC,IAAI,CAACC,SAAS,CAAChB,KAAK;MAChC,CAAC;IAET,CAAC,CAAC;IACF,IAAI;MACA,OAAO,MAAM,IAAI,CAACb,MAAM,CAACU,IAAI,CAACU,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOU,EAAE,EAAE;MACT,MAAM,IAAIC,kBAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,0CAA0C,EACxDF,EAAE,CAACG,IAAI,IAAI,oBAAoB,EAC/B;QACIpB,KAAK;QACL,IAAIiB,EAAE,CAACI,IAAI,IAAI,CAAC,CAAC;MACrB,CACJ,CAAC;IACL;EACJ;AACJ;AAEO,MAAMC,+BAA+B,SAASC,mCAA0B,CAAC;EAC5DC,IAAI,GAAG,gCAAgC;EAChDC,eAAeA,CAACvC,MAAyC,EAAyB;IACrF,OAAO,IAAIF,yBAAyB,CAACE,MAAM,CAAC;EAChD;AACJ;AAACwC,OAAA,CAAAJ,+BAAA,GAAAA,+BAAA","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import { Context, ITaskConfig, ITasksContextTriggerObject } from "../types";
2
- export declare const createTriggerTasksCrud: (context: Context, config: ITaskConfig) => ITasksContextTriggerObject;
@@ -1 +0,0 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_types","_handlerGraphql","_createTransport","_EventBridgeEventTransportPlugin","MAX_DELAY_DAYS","MAX_DELAY_SECONDS","validateDelay","input","delay","Number","isInteger","WebinyError","createTriggerTasksCrud","context","config","plugins","register","EventBridgeEventTransportPlugin","transport","createTransport","trigger","params","definition","id","inputValues","name","parent","tasks","getDefinition","title","definitionId","parentId","onBeforeTrigger","data","task","createTask","event","send","ex","deleteTask","updateTask","eventResponse","abort","getTask","NotFoundError","TaskDataStatus","PENDING","RUNNING","includes","taskStatus","status","taskLog","getLatestLog","createLog","iteration","executionName","updatedTask","ABORTED","updateLog","items","concat","message","type","ITaskLogItemType","INFO","createdOn","Date","toISOString","onAbort","exports"],"sources":["trigger.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n Context,\n ITask,\n ITaskAbortParams,\n ITaskConfig,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskLogItemType,\n ITasksContextTriggerObject,\n ITaskTriggerParams,\n PutEventsCommandOutput,\n TaskDataStatus\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTransport } from \"~/transport/createTransport\";\nimport { EventBridgeEventTransportPlugin } from \"~/crud/transport/EventBridgeEventTransportPlugin\";\n\nconst MAX_DELAY_DAYS = 355;\nconst MAX_DELAY_SECONDS = MAX_DELAY_DAYS * 24 * 60 * 60;\n\ninterface ValidateDelayParams<T> {\n input: ITaskCreateData<T>;\n delay?: number;\n}\n\nconst validateDelay = <T = ITaskDataInput>({ input, delay }: 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 createTriggerTasksCrud = (\n context: Context,\n config: ITaskConfig\n): ITasksContextTriggerObject => {\n context.plugins.register(new EventBridgeEventTransportPlugin());\n\n const transport = createTransport({\n context,\n config\n });\n\n return {\n trigger: async <T = ITaskDataInput>(params: ITaskTriggerParams<T>): Promise<ITask<T>> => {\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: ITaskCreateData<T> = {\n name: name || definition.title,\n definitionId: id,\n input: inputValues || ({} as T),\n parentId: parent?.id\n };\n if (definition.onBeforeTrigger) {\n await definition.onBeforeTrigger<T>({\n context,\n data: input\n });\n }\n validateDelay<T>({\n input,\n delay\n });\n\n const task = await context.tasks.createTask<T>(input);\n\n let event: PutEventsCommandOutput | null = null;\n try {\n event = await transport.send(task, delay);\n\n if (!event) {\n throw new WebinyError(\n `Could not create the Event Bridge Event!`,\n \"CREATE_EVENT_BRIDGE_EVENT_ERROR\",\n {\n task\n }\n );\n }\n } catch (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 return await context.tasks.updateTask(task.id, {\n eventResponse: event\n });\n },\n abort: async (params: ITaskAbortParams): Promise<ITask> => {\n const task = await context.tasks.getTask(params.id);\n if (!task) {\n throw new NotFoundError(`Task \"${params.id}\" was not found!`);\n }\n\n const definition = context.tasks.getDefinition(task.definitionId);\n if (!definition) {\n throw new WebinyError(`Task definition was not found!`, \"TASK_DEFINITION_ERROR\", {\n id: task.id\n });\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 throw new WebinyError(\n `Cannot abort a task that is not pending or running!`,\n \"TASK_ABORT_ERROR\",\n {\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 (ex) {}\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(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: ITaskLogItemType.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 context,\n task: updatedTask\n });\n }\n\n return 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":[]}
@@ -1,17 +0,0 @@
1
- import { Plugin } from "@webiny/plugins";
2
- import { Context, ITask, ITaskConfig } from "../types";
3
- import { PutEventsCommandOutput } from "@webiny/aws-sdk/client-eventbridge";
4
- export { PutEventsCommandOutput };
5
- export interface ITaskTriggerTransportPluginParams {
6
- context: Context;
7
- config: ITaskConfig;
8
- getTenant(): string;
9
- getLocale(): string;
10
- }
11
- export interface ITaskTriggerTransport {
12
- send(task: Pick<ITask, "id" | "definitionId">, delay: number): Promise<PutEventsCommandOutput>;
13
- }
14
- export declare abstract class TaskTriggerTransportPlugin extends Plugin {
15
- static readonly type: string;
16
- abstract createTransport(params: ITaskTriggerTransportPluginParams): ITaskTriggerTransport;
17
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "PutEventsCommandOutput", {
7
- enumerable: true,
8
- get: function () {
9
- return _clientEventbridge.PutEventsCommandOutput;
10
- }
11
- });
12
- exports.TaskTriggerTransportPlugin = void 0;
13
- var _plugins = require("@webiny/plugins");
14
- var _clientEventbridge = require("@webiny/aws-sdk/client-eventbridge");
15
- class TaskTriggerTransportPlugin extends _plugins.Plugin {
16
- static type = "tasks.taskTriggerTransport";
17
- }
18
- exports.TaskTriggerTransportPlugin = TaskTriggerTransportPlugin;
19
-
20
- //# sourceMappingURL=TaskTriggerTransportPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_plugins","require","_clientEventbridge","TaskTriggerTransportPlugin","Plugin","type","exports"],"sources":["TaskTriggerTransportPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { Context, ITask, ITaskConfig } from \"~/types\";\nimport { PutEventsCommandOutput } from \"@webiny/aws-sdk/client-eventbridge\";\n\nexport { PutEventsCommandOutput };\n\nexport interface ITaskTriggerTransportPluginParams {\n context: Context;\n config: ITaskConfig;\n getTenant(): string;\n getLocale(): string;\n}\n\nexport interface ITaskTriggerTransport {\n send(task: Pick<ITask, \"id\" | \"definitionId\">, delay: number): Promise<PutEventsCommandOutput>;\n}\n\nexport abstract class TaskTriggerTransportPlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskTriggerTransport\";\n\n public abstract createTransport(\n params: ITaskTriggerTransportPluginParams\n ): ITaskTriggerTransport;\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AAeO,MAAeE,0BAA0B,SAASC,eAAM,CAAC;EAC5D,OAAgCC,IAAI,GAAW,4BAA4B;AAK/E;AAACC,OAAA,CAAAH,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- import { Context, ITaskConfig } from "../types";
2
- import { ITaskTriggerTransport } from "../plugins";
3
- export interface ICreateTransport {
4
- context: Context;
5
- config: ITaskConfig;
6
- }
7
- export declare const createTransport: (params: ICreateTransport) => ITaskTriggerTransport;
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createTransport = void 0;
7
- var _plugins = require("../plugins");
8
- var _error = require("@webiny/error");
9
- const createTransport = params => {
10
- const plugins = params.context.plugins.byType(_plugins.TaskTriggerTransportPlugin.type);
11
- const [plugin] = plugins;
12
- if (!plugin) {
13
- throw new _error.WebinyError("Missing TaskTriggerTransportPlugin.", "PLUGIN_ERROR", {
14
- type: _plugins.TaskTriggerTransportPlugin.type
15
- });
16
- }
17
- const getTenant = () => {
18
- return params.context.tenancy.getCurrentTenant().id;
19
- };
20
- const getLocale = () => {
21
- return params.context.cms.getLocale().code;
22
- };
23
- return plugin.createTransport({
24
- context: params.context,
25
- config: params.config,
26
- getTenant,
27
- getLocale
28
- });
29
- };
30
- exports.createTransport = createTransport;
31
-
32
- //# sourceMappingURL=createTransport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_plugins","require","_error","createTransport","params","plugins","context","byType","TaskTriggerTransportPlugin","type","plugin","WebinyError","getTenant","tenancy","getCurrentTenant","id","getLocale","cms","code","config","exports"],"sources":["createTransport.ts"],"sourcesContent":["import { Context, ITaskConfig } from \"~/types\";\nimport { ITaskTriggerTransport, TaskTriggerTransportPlugin } from \"~/plugins\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface ICreateTransport {\n context: Context;\n config: ITaskConfig;\n}\n\nexport const createTransport = (params: ICreateTransport): ITaskTriggerTransport => {\n const plugins = params.context.plugins.byType<TaskTriggerTransportPlugin>(\n TaskTriggerTransportPlugin.type\n );\n const [plugin] = plugins;\n if (!plugin) {\n throw new WebinyError(\"Missing TaskTriggerTransportPlugin.\", \"PLUGIN_ERROR\", {\n type: TaskTriggerTransportPlugin.type\n });\n }\n\n const getTenant = (): string => {\n return params.context.tenancy.getCurrentTenant().id;\n };\n const getLocale = (): string => {\n return params.context.cms.getLocale().code;\n };\n\n return plugin.createTransport({\n context: params.context,\n config: params.config,\n getTenant,\n getLocale\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAOO,MAAME,eAAe,GAAIC,MAAwB,IAA4B;EAChF,MAAMC,OAAO,GAAGD,MAAM,CAACE,OAAO,CAACD,OAAO,CAACE,MAAM,CACzCC,mCAA0B,CAACC,IAC/B,CAAC;EACD,MAAM,CAACC,MAAM,CAAC,GAAGL,OAAO;EACxB,IAAI,CAACK,MAAM,EAAE;IACT,MAAM,IAAIC,kBAAW,CAAC,qCAAqC,EAAE,cAAc,EAAE;MACzEF,IAAI,EAAED,mCAA0B,CAACC;IACrC,CAAC,CAAC;EACN;EAEA,MAAMG,SAAS,GAAGA,CAAA,KAAc;IAC5B,OAAOR,MAAM,CAACE,OAAO,CAACO,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACC,EAAE;EACvD,CAAC;EACD,MAAMC,SAAS,GAAGA,CAAA,KAAc;IAC5B,OAAOZ,MAAM,CAACE,OAAO,CAACW,GAAG,CAACD,SAAS,CAAC,CAAC,CAACE,IAAI;EAC9C,CAAC;EAED,OAAOR,MAAM,CAACP,eAAe,CAAC;IAC1BG,OAAO,EAAEF,MAAM,CAACE,OAAO;IACvBa,MAAM,EAAEf,MAAM,CAACe,MAAM;IACrBP,SAAS;IACTI;EACJ,CAAC,CAAC;AACN,CAAC;AAACI,OAAA,CAAAjB,eAAA,GAAAA,eAAA","ignoreList":[]}