@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.
- package/context.d.ts +1 -2
- package/context.js +8 -16
- package/context.js.map +1 -1
- package/crud/model.js +2 -2
- package/crud/model.js.map +1 -1
- package/crud/service.tasks.d.ts +2 -0
- package/crud/{trigger.tasks.js → service.tasks.js} +39 -17
- package/crud/service.tasks.js.map +1 -0
- package/graphql/index.js +0 -4
- package/graphql/index.js.map +1 -1
- package/graphql/utils.d.ts +2 -2
- package/handler/index.d.ts +1 -3
- package/handler/index.js.map +1 -1
- package/handler/register.js +4 -2
- package/handler/register.js.map +1 -1
- package/handler/types.d.ts +2 -0
- package/handler/types.js.map +1 -1
- package/package.json +20 -19
- package/plugins/TaskServicePlugin.d.ts +21 -0
- package/plugins/TaskServicePlugin.js +17 -0
- package/plugins/TaskServicePlugin.js.map +1 -0
- package/plugins/index.d.ts +1 -1
- package/plugins/index.js +4 -4
- package/plugins/index.js.map +1 -1
- package/response/Response.js +48 -1
- package/response/Response.js.map +1 -1
- package/response/ResponseDoneResult.js +1 -1
- package/response/ResponseDoneResult.js.map +1 -1
- package/response/TaskResponse.js +2 -2
- package/response/TaskResponse.js.map +1 -1
- package/response/abstractions/ResponseContinueResult.d.ts +1 -0
- package/response/abstractions/ResponseContinueResult.js.map +1 -1
- package/response/abstractions/ResponseErrorResult.d.ts +3 -2
- package/response/abstractions/ResponseErrorResult.js.map +1 -1
- package/response/abstractions/TaskResponse.d.ts +5 -8
- package/response/abstractions/TaskResponse.js.map +1 -1
- package/runner/TaskControl.js +44 -17
- package/runner/TaskControl.js.map +1 -1
- package/runner/TaskManager.js.map +1 -1
- package/runner/TaskManagerStore.d.ts +11 -2
- package/runner/TaskManagerStore.js +30 -6
- package/runner/TaskManagerStore.js.map +1 -1
- package/runner/abstractions/TaskManagerStore.d.ts +6 -0
- package/runner/abstractions/TaskManagerStore.js.map +1 -1
- package/runner/abstractions/TaskRunner.d.ts +4 -1
- package/runner/abstractions/TaskRunner.js.map +1 -1
- package/service/EventBridgeEventTransportPlugin.d.ts +18 -0
- package/{crud/transport → service}/EventBridgeEventTransportPlugin.js +9 -7
- package/service/EventBridgeEventTransportPlugin.js.map +1 -0
- package/service/StepFunctionServicePlugin.d.ts +26 -0
- package/service/StepFunctionServicePlugin.js +84 -0
- package/service/StepFunctionServicePlugin.js.map +1 -0
- package/service/createService.d.ts +6 -0
- package/service/createService.js +31 -0
- package/service/createService.js.map +1 -0
- package/service/index.d.ts +4 -0
- package/service/index.js +31 -0
- package/service/index.js.map +1 -0
- package/task/plugin.d.ts +3 -3
- package/types.d.ts +56 -56
- package/types.js +7 -16
- package/types.js.map +1 -1
- package/utils/getErrorProperties.d.ts +1 -1
- package/utils/getErrorProperties.js +3 -1
- package/utils/getErrorProperties.js.map +1 -1
- package/utils/index.d.ts +3 -0
- package/utils/index.js +40 -0
- package/utils/index.js.map +1 -0
- package/crud/transport/EventBridgeEventTransportPlugin.d.ts +0 -5
- package/crud/transport/EventBridgeEventTransportPlugin.js.map +0 -1
- package/crud/trigger.tasks.d.ts +0 -2
- package/crud/trigger.tasks.js.map +0 -1
- package/plugins/TaskTriggerTransportPlugin.d.ts +0 -17
- package/plugins/TaskTriggerTransportPlugin.js +0 -20
- package/plugins/TaskTriggerTransportPlugin.js.map +0 -1
- package/transport/createTransport.d.ts +0 -7
- package/transport/createTransport.js +0 -32
- 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
|
-
|
|
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
|
|
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:
|
|
22
|
+
type: TaskLogItemType;
|
|
27
23
|
data?: ITaskLogItemData;
|
|
28
24
|
}
|
|
29
25
|
export interface ITaskLogItemInfo extends ITaskLogItemBase {
|
|
30
|
-
type:
|
|
26
|
+
type: TaskLogItemType.INFO;
|
|
31
27
|
}
|
|
32
28
|
export interface ITaskLogItemError extends ITaskLogItemBase {
|
|
33
|
-
type:
|
|
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 =
|
|
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:
|
|
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?:
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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?:
|
|
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?:
|
|
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: <
|
|
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
|
|
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,
|
|
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
|
|
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
|
-
|
|
7
|
+
TaskLogItemType: true,
|
|
8
8
|
TaskDataStatus: true,
|
|
9
|
-
TaskResponseStatus: true
|
|
10
|
-
PutEventsCommandOutput: true
|
|
9
|
+
TaskResponseStatus: true
|
|
11
10
|
};
|
|
12
|
-
exports.
|
|
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
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return
|
|
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
|
-
|
|
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
|
|
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":[]}
|
package/utils/index.d.ts
ADDED
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":[]}
|
package/crud/trigger.tasks.d.ts
DELETED
|
@@ -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":[]}
|