@webiny/tasks 0.0.0-unstable.2696f9d9e8
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/LICENSE +21 -0
- package/README.md +10 -0
- package/context.d.ts +3 -0
- package/context.js +37 -0
- package/context.js.map +1 -0
- package/crud/createEventBridgeEvent.d.ts +7 -0
- package/crud/createEventBridgeEvent.js +67 -0
- package/crud/createEventBridgeEvent.js.map +1 -0
- package/crud/crud.tasks.d.ts +2 -0
- package/crud/crud.tasks.js +220 -0
- package/crud/crud.tasks.js.map +1 -0
- package/crud/definition.tasks.d.ts +2 -0
- package/crud/definition.tasks.js +29 -0
- package/crud/definition.tasks.js.map +1 -0
- package/crud/model.d.ts +5 -0
- package/crud/model.js +212 -0
- package/crud/model.js.map +1 -0
- package/crud/trigger.tasks.d.ts +2 -0
- package/crud/trigger.tasks.js +116 -0
- package/crud/trigger.tasks.js.map +1 -0
- package/crud/where.d.ts +1 -0
- package/crud/where.js +33 -0
- package/crud/where.js.map +1 -0
- package/graphql/checkPermissions.d.ts +7 -0
- package/graphql/checkPermissions.js +46 -0
- package/graphql/checkPermissions.js.map +1 -0
- package/graphql/index.d.ts +3 -0
- package/graphql/index.js +344 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +9 -0
- package/graphql/utils.js +28 -0
- package/graphql/utils.js.map +1 -0
- package/handler/index.d.ts +9 -0
- package/handler/index.js +65 -0
- package/handler/index.js.map +1 -0
- package/handler/register.d.ts +1 -0
- package/handler/register.js +21 -0
- package/handler/register.js.map +1 -0
- package/handler/types.d.ts +19 -0
- package/handler/types.js +7 -0
- package/handler/types.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +47 -0
- package/index.js.map +1 -0
- package/package.json +56 -0
- package/response/DatabaseResponse.d.ts +12 -0
- package/response/DatabaseResponse.js +142 -0
- package/response/DatabaseResponse.js.map +1 -0
- package/response/Response.d.ts +11 -0
- package/response/Response.js +73 -0
- package/response/Response.js.map +1 -0
- package/response/ResponseAbortedResult.d.ts +10 -0
- package/response/ResponseAbortedResult.js +19 -0
- package/response/ResponseAbortedResult.js.map +1 -0
- package/response/ResponseContinueResult.d.ts +13 -0
- package/response/ResponseContinueResult.js +22 -0
- package/response/ResponseContinueResult.js.map +1 -0
- package/response/ResponseDoneResult.d.ts +11 -0
- package/response/ResponseDoneResult.js +20 -0
- package/response/ResponseDoneResult.js.map +1 -0
- package/response/ResponseErrorResult.d.ts +11 -0
- package/response/ResponseErrorResult.js +20 -0
- package/response/ResponseErrorResult.js.map +1 -0
- package/response/TaskResponse.d.ts +10 -0
- package/response/TaskResponse.js +55 -0
- package/response/TaskResponse.js.map +1 -0
- package/response/abstractions/Response.d.ts +23 -0
- package/response/abstractions/Response.js +7 -0
- package/response/abstractions/Response.js.map +1 -0
- package/response/abstractions/ResponseAbortedResult.d.ts +5 -0
- package/response/abstractions/ResponseAbortedResult.js +7 -0
- package/response/abstractions/ResponseAbortedResult.js.map +1 -0
- package/response/abstractions/ResponseBaseResult.d.ts +8 -0
- package/response/abstractions/ResponseBaseResult.js +7 -0
- package/response/abstractions/ResponseBaseResult.js.map +1 -0
- package/response/abstractions/ResponseContinueResult.d.ts +19 -0
- package/response/abstractions/ResponseContinueResult.js +7 -0
- package/response/abstractions/ResponseContinueResult.js.map +1 -0
- package/response/abstractions/ResponseDoneResult.d.ts +12 -0
- package/response/abstractions/ResponseDoneResult.js +7 -0
- package/response/abstractions/ResponseDoneResult.js.map +1 -0
- package/response/abstractions/ResponseErrorResult.d.ts +18 -0
- package/response/abstractions/ResponseErrorResult.js +7 -0
- package/response/abstractions/ResponseErrorResult.js.map +1 -0
- package/response/abstractions/TaskResponse.d.ts +32 -0
- package/response/abstractions/TaskResponse.js +7 -0
- package/response/abstractions/TaskResponse.js.map +1 -0
- package/response/abstractions/index.d.ts +7 -0
- package/response/abstractions/index.js +84 -0
- package/response/abstractions/index.js.map +1 -0
- package/response/index.d.ts +7 -0
- package/response/index.js +84 -0
- package/response/index.js.map +1 -0
- package/runner/TaskControl.d.ts +13 -0
- package/runner/TaskControl.js +142 -0
- package/runner/TaskControl.js.map +1 -0
- package/runner/TaskEventValidation.d.ts +5 -0
- package/runner/TaskEventValidation.js +30 -0
- package/runner/TaskEventValidation.js.map +1 -0
- package/runner/TaskManager.d.ts +13 -0
- package/runner/TaskManager.js +101 -0
- package/runner/TaskManager.js.map +1 -0
- package/runner/TaskManagerStore.d.ts +19 -0
- package/runner/TaskManagerStore.js +90 -0
- package/runner/TaskManagerStore.js.map +1 -0
- package/runner/TaskRunner.d.ts +30 -0
- package/runner/TaskRunner.js +67 -0
- package/runner/TaskRunner.js.map +1 -0
- package/runner/abstractions/TaskControl.d.ts +10 -0
- package/runner/abstractions/TaskControl.js +7 -0
- package/runner/abstractions/TaskControl.js.map +1 -0
- package/runner/abstractions/TaskEventValidation.d.ts +5 -0
- package/runner/abstractions/TaskEventValidation.js +7 -0
- package/runner/abstractions/TaskEventValidation.js.map +1 -0
- package/runner/abstractions/TaskManager.d.ts +5 -0
- package/runner/abstractions/TaskManager.js +7 -0
- package/runner/abstractions/TaskManager.js.map +1 -0
- package/runner/abstractions/TaskManagerStore.d.ts +39 -0
- package/runner/abstractions/TaskManagerStore.js +7 -0
- package/runner/abstractions/TaskManagerStore.js.map +1 -0
- package/runner/abstractions/TaskRunner.d.ts +14 -0
- package/runner/abstractions/TaskRunner.js +7 -0
- package/runner/abstractions/TaskRunner.js.map +1 -0
- package/runner/abstractions/index.d.ts +5 -0
- package/runner/abstractions/index.js +62 -0
- package/runner/abstractions/index.js.map +1 -0
- package/runner/index.d.ts +1 -0
- package/runner/index.js +18 -0
- package/runner/index.js.map +1 -0
- package/runner/utils/getErrorProperties.d.ts +5 -0
- package/runner/utils/getErrorProperties.js +18 -0
- package/runner/utils/getErrorProperties.js.map +1 -0
- package/runner/utils/getObjectProperties.d.ts +4 -0
- package/runner/utils/getObjectProperties.js +21 -0
- package/runner/utils/getObjectProperties.js.map +1 -0
- package/task/index.d.ts +2 -0
- package/task/index.js +29 -0
- package/task/index.js.map +1 -0
- package/task/input.d.ts +15 -0
- package/task/input.js +21 -0
- package/task/input.js.map +1 -0
- package/task/plugin.d.ts +28 -0
- package/task/plugin.js +76 -0
- package/task/plugin.js.map +1 -0
- package/types.d.ts +258 -0
- package/types.js +60 -0
- package/types.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["ResponseBaseResult.ts"],"sourcesContent":["import { TaskResponseStatus } from \"~/types\";\n\nexport interface IResponseBaseResult {\n status: TaskResponseStatus;\n webinyTaskId: string;\n webinyTaskDefinitionId: string;\n tenant: string;\n locale: string;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ITaskDataInput, TaskResponseStatus } from "../../types";
|
|
2
|
+
import { IResponseBaseResult } from "./ResponseBaseResult";
|
|
3
|
+
/**
|
|
4
|
+
* Wait can be used to pause next iteration of the Lambda execution.
|
|
5
|
+
* For example, if the task is hammering the Elasticsearch cluster too much, you can use this to pause the execution for some time.
|
|
6
|
+
*/
|
|
7
|
+
export interface IResponseContinueParams<T = ITaskDataInput> {
|
|
8
|
+
tenant?: string;
|
|
9
|
+
locale?: string;
|
|
10
|
+
webinyTaskId?: string;
|
|
11
|
+
input: T;
|
|
12
|
+
wait?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface IResponseContinueResult<T = ITaskDataInput> extends IResponseBaseResult {
|
|
15
|
+
message?: string;
|
|
16
|
+
input: T;
|
|
17
|
+
wait?: number;
|
|
18
|
+
status: TaskResponseStatus.CONTINUE;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["ResponseContinueResult.ts"],"sourcesContent":["import { ITaskDataInput, TaskResponseStatus } from \"~/types\";\nimport { IResponseBaseResult } from \"./ResponseBaseResult\";\n\n/**\n * Wait can be used to pause next iteration of the Lambda execution.\n * For example, if the task is hammering the Elasticsearch cluster too much, you can use this to pause the execution for some time.\n */\n\nexport interface IResponseContinueParams<T = ITaskDataInput> {\n tenant?: string;\n locale?: string;\n webinyTaskId?: string;\n input: T;\n wait?: number;\n}\n\nexport interface IResponseContinueResult<T = ITaskDataInput> extends IResponseBaseResult {\n message?: string;\n input: T;\n wait?: number;\n status: TaskResponseStatus.CONTINUE;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TaskResponseStatus } from "../../types";
|
|
2
|
+
import { IResponseBaseResult } from "./ResponseBaseResult";
|
|
3
|
+
export interface IResponseDoneParams {
|
|
4
|
+
tenant?: string;
|
|
5
|
+
locale?: string;
|
|
6
|
+
webinyTaskId?: string;
|
|
7
|
+
message?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IResponseDoneResult extends IResponseBaseResult {
|
|
10
|
+
message?: string;
|
|
11
|
+
status: TaskResponseStatus.DONE;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["ResponseDoneResult.ts"],"sourcesContent":["import { TaskResponseStatus } from \"~/types\";\nimport { IResponseBaseResult } from \"./ResponseBaseResult\";\n\nexport interface IResponseDoneParams {\n tenant?: string;\n locale?: string;\n webinyTaskId?: string;\n message?: string;\n}\n\nexport interface IResponseDoneResult extends IResponseBaseResult {\n message?: string;\n status: TaskResponseStatus.DONE;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TaskResponseStatus } from "../../types";
|
|
2
|
+
import { IResponseBaseResult } from "./ResponseBaseResult";
|
|
3
|
+
export interface IResponseError {
|
|
4
|
+
message: string;
|
|
5
|
+
code: string;
|
|
6
|
+
data?: Record<string, any>;
|
|
7
|
+
stack?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IResponseErrorParams {
|
|
10
|
+
error: IResponseError;
|
|
11
|
+
tenant?: string;
|
|
12
|
+
locale?: string;
|
|
13
|
+
webinyTaskId?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface IResponseErrorResult extends IResponseBaseResult {
|
|
16
|
+
error: IResponseError;
|
|
17
|
+
status: TaskResponseStatus.ERROR;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["ResponseErrorResult.ts"],"sourcesContent":["import { TaskResponseStatus } from \"~/types\";\nimport { IResponseBaseResult } from \"./ResponseBaseResult\";\n\nexport interface IResponseError {\n message: string;\n code: string;\n data?: Record<string, any>;\n stack?: string;\n}\n\nexport interface IResponseErrorParams {\n error: IResponseError;\n tenant?: string;\n locale?: string;\n webinyTaskId?: string;\n}\n\nexport interface IResponseErrorResult extends IResponseBaseResult {\n error: IResponseError;\n status: TaskResponseStatus.ERROR;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ITaskDataInput, TaskResponseStatus } from "../../types";
|
|
2
|
+
import { IResponseError } from "./ResponseErrorResult";
|
|
3
|
+
export declare type ITaskResponseResult = ITaskResponseDoneResult | ITaskResponseContinueResult | ITaskResponseErrorResult | ITaskResponseAbortedResult;
|
|
4
|
+
export interface ITaskResponseDoneResult {
|
|
5
|
+
message?: string;
|
|
6
|
+
status: TaskResponseStatus.DONE;
|
|
7
|
+
}
|
|
8
|
+
export interface ITaskResponseContinueResult<T = ITaskDataInput> {
|
|
9
|
+
input: T;
|
|
10
|
+
wait?: number;
|
|
11
|
+
status: TaskResponseStatus.CONTINUE;
|
|
12
|
+
}
|
|
13
|
+
export interface ITaskResponseErrorResult {
|
|
14
|
+
error: IResponseError;
|
|
15
|
+
status: TaskResponseStatus.ERROR;
|
|
16
|
+
}
|
|
17
|
+
export interface ITaskResponseAbortedResult {
|
|
18
|
+
status: TaskResponseStatus.ABORTED;
|
|
19
|
+
}
|
|
20
|
+
export interface ITaskResponseContinueOptionsUntil {
|
|
21
|
+
date: Date;
|
|
22
|
+
}
|
|
23
|
+
export interface ITaskResponseContinueOptionsSeconds {
|
|
24
|
+
seconds: number;
|
|
25
|
+
}
|
|
26
|
+
export declare type ITaskResponseContinueOptions = ITaskResponseContinueOptionsUntil | ITaskResponseContinueOptionsSeconds;
|
|
27
|
+
export interface ITaskResponse<T = ITaskDataInput> {
|
|
28
|
+
done: (message?: string) => ITaskResponseDoneResult;
|
|
29
|
+
continue: (data: T, options?: ITaskResponseContinueOptions) => ITaskResponseContinueResult<T>;
|
|
30
|
+
error: (error: IResponseError) => ITaskResponseErrorResult;
|
|
31
|
+
aborted: () => ITaskResponseAbortedResult;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["TaskResponse.ts"],"sourcesContent":["import { ITaskDataInput, TaskResponseStatus } from \"~/types\";\nimport { IResponseError } from \"./ResponseErrorResult\";\n\nexport type ITaskResponseResult =\n | ITaskResponseDoneResult\n | ITaskResponseContinueResult\n | ITaskResponseErrorResult\n | ITaskResponseAbortedResult;\n\nexport interface ITaskResponseDoneResult {\n message?: string;\n status: TaskResponseStatus.DONE;\n}\n\nexport interface ITaskResponseContinueResult<T = ITaskDataInput> {\n input: T;\n wait?: number;\n status: TaskResponseStatus.CONTINUE;\n}\n\nexport interface ITaskResponseErrorResult {\n error: IResponseError;\n status: TaskResponseStatus.ERROR;\n}\n\nexport interface ITaskResponseAbortedResult {\n status: TaskResponseStatus.ABORTED;\n}\n\nexport interface ITaskResponseContinueOptionsUntil {\n date: Date;\n}\nexport interface ITaskResponseContinueOptionsSeconds {\n seconds: number;\n}\n\nexport type ITaskResponseContinueOptions =\n | ITaskResponseContinueOptionsUntil\n | ITaskResponseContinueOptionsSeconds;\n\nexport interface ITaskResponse<T = ITaskDataInput> {\n done: (message?: string) => ITaskResponseDoneResult;\n continue: (data: T, options?: ITaskResponseContinueOptions) => ITaskResponseContinueResult<T>;\n error: (error: IResponseError) => ITaskResponseErrorResult;\n aborted: () => ITaskResponseAbortedResult;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./Response";
|
|
2
|
+
export * from "./ResponseContinueResult";
|
|
3
|
+
export * from "./ResponseDoneResult";
|
|
4
|
+
export * from "./ResponseErrorResult";
|
|
5
|
+
export * from "./ResponseAbortedResult";
|
|
6
|
+
export * from "./ResponseBaseResult";
|
|
7
|
+
export * from "./TaskResponse";
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Response = require("./Response");
|
|
7
|
+
Object.keys(_Response).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Response[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _Response[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _ResponseContinueResult = require("./ResponseContinueResult");
|
|
18
|
+
Object.keys(_ResponseContinueResult).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _ResponseContinueResult[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _ResponseContinueResult[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _ResponseDoneResult = require("./ResponseDoneResult");
|
|
29
|
+
Object.keys(_ResponseDoneResult).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _ResponseDoneResult[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _ResponseDoneResult[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _ResponseErrorResult = require("./ResponseErrorResult");
|
|
40
|
+
Object.keys(_ResponseErrorResult).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _ResponseErrorResult[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _ResponseErrorResult[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _ResponseAbortedResult = require("./ResponseAbortedResult");
|
|
51
|
+
Object.keys(_ResponseAbortedResult).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _ResponseAbortedResult[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _ResponseAbortedResult[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
var _ResponseBaseResult = require("./ResponseBaseResult");
|
|
62
|
+
Object.keys(_ResponseBaseResult).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _ResponseBaseResult[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _ResponseBaseResult[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var _TaskResponse = require("./TaskResponse");
|
|
73
|
+
Object.keys(_TaskResponse).forEach(function (key) {
|
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
|
75
|
+
if (key in exports && exports[key] === _TaskResponse[key]) return;
|
|
76
|
+
Object.defineProperty(exports, key, {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function () {
|
|
79
|
+
return _TaskResponse[key];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Response","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_ResponseContinueResult","_ResponseDoneResult","_ResponseErrorResult","_ResponseAbortedResult","_ResponseBaseResult","_TaskResponse"],"sources":["index.ts"],"sourcesContent":["export * from \"./Response\";\nexport * from \"./ResponseContinueResult\";\nexport * from \"./ResponseDoneResult\";\nexport * from \"./ResponseErrorResult\";\nexport * from \"./ResponseAbortedResult\";\nexport * from \"./ResponseBaseResult\";\nexport * from \"./TaskResponse\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _DatabaseResponse = require("./DatabaseResponse");
|
|
7
|
+
Object.keys(_DatabaseResponse).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _DatabaseResponse[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _DatabaseResponse[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _Response = require("./Response");
|
|
18
|
+
Object.keys(_Response).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _Response[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _Response[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _ResponseContinueResult = require("./ResponseContinueResult");
|
|
29
|
+
Object.keys(_ResponseContinueResult).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _ResponseContinueResult[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _ResponseContinueResult[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _ResponseDoneResult = require("./ResponseDoneResult");
|
|
40
|
+
Object.keys(_ResponseDoneResult).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _ResponseDoneResult[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _ResponseDoneResult[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _ResponseAbortedResult = require("./ResponseAbortedResult");
|
|
51
|
+
Object.keys(_ResponseAbortedResult).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _ResponseAbortedResult[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _ResponseAbortedResult[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
var _ResponseErrorResult = require("./ResponseErrorResult");
|
|
62
|
+
Object.keys(_ResponseErrorResult).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _ResponseErrorResult[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _ResponseErrorResult[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var _TaskResponse = require("./TaskResponse");
|
|
73
|
+
Object.keys(_TaskResponse).forEach(function (key) {
|
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
|
75
|
+
if (key in exports && exports[key] === _TaskResponse[key]) return;
|
|
76
|
+
Object.defineProperty(exports, key, {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function () {
|
|
79
|
+
return _TaskResponse[key];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_DatabaseResponse","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Response","_ResponseContinueResult","_ResponseDoneResult","_ResponseAbortedResult","_ResponseErrorResult","_TaskResponse"],"sources":["index.ts"],"sourcesContent":["export * from \"./DatabaseResponse\";\nexport * from \"./Response\";\nexport * from \"./ResponseContinueResult\";\nexport * from \"./ResponseDoneResult\";\nexport * from \"./ResponseAbortedResult\";\nexport * from \"./ResponseErrorResult\";\nexport * from \"./TaskResponse\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ITaskEvent } from "../handler/types";
|
|
2
|
+
import { Context } from "../types";
|
|
3
|
+
import { ITaskControl, ITaskRunner } from "./abstractions";
|
|
4
|
+
import { IResponse, IResponseResult } from "../response/abstractions";
|
|
5
|
+
export declare class TaskControl implements ITaskControl {
|
|
6
|
+
readonly runner: ITaskRunner;
|
|
7
|
+
readonly response: IResponse;
|
|
8
|
+
readonly context: Context;
|
|
9
|
+
constructor(runner: ITaskRunner, response: IResponse, context: Context);
|
|
10
|
+
run(event: Pick<ITaskEvent, "webinyTaskId">): Promise<IResponseResult>;
|
|
11
|
+
private getTask;
|
|
12
|
+
private getTaskLog;
|
|
13
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TaskControl = void 0;
|
|
7
|
+
var _types = require("../types");
|
|
8
|
+
var _TaskManager = require("./TaskManager");
|
|
9
|
+
var _response = require("../response");
|
|
10
|
+
var _TaskManagerStore = require("./TaskManagerStore");
|
|
11
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
12
|
+
var _getObjectProperties = require("./utils/getObjectProperties");
|
|
13
|
+
class TaskControl {
|
|
14
|
+
constructor(runner, response, context) {
|
|
15
|
+
this.runner = runner;
|
|
16
|
+
this.context = context;
|
|
17
|
+
this.response = response;
|
|
18
|
+
}
|
|
19
|
+
async run(event) {
|
|
20
|
+
const taskId = event.webinyTaskId;
|
|
21
|
+
/**
|
|
22
|
+
* This is the initial getTask idea.
|
|
23
|
+
* We will need to take care of child tasks:
|
|
24
|
+
* * child tasks can be in multiple levels (child task creates a child task, etc...).
|
|
25
|
+
* * child tasks could be executed in parallel.
|
|
26
|
+
*/
|
|
27
|
+
let task;
|
|
28
|
+
try {
|
|
29
|
+
task = await this.getTask(taskId);
|
|
30
|
+
} catch (ex) {
|
|
31
|
+
return (0, _getObjectProperties.getObjectProperties)(ex);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* As this as a run of the task, we need to create a new log entry.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
let taskLog;
|
|
38
|
+
try {
|
|
39
|
+
taskLog = await this.getTaskLog(task);
|
|
40
|
+
} catch (ex) {
|
|
41
|
+
return (0, _getObjectProperties.getObjectProperties)(ex);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Make sure that task does not run if it is aborted.
|
|
45
|
+
* This will effectively end the Step Function execution with a "success" status.
|
|
46
|
+
*/
|
|
47
|
+
if (task.taskStatus === _types.TaskDataStatus.ABORTED) {
|
|
48
|
+
return this.response.aborted();
|
|
49
|
+
}
|
|
50
|
+
const taskResponse = new _response.TaskResponse(this.response);
|
|
51
|
+
const store = new _TaskManagerStore.TaskManagerStore(this.context, task, taskLog);
|
|
52
|
+
const manager = new _TaskManager.TaskManager(this.runner, this.context, this.response, taskResponse, store);
|
|
53
|
+
const databaseResponse = new _response.DatabaseResponse(this.response, store);
|
|
54
|
+
const definition = this.context.tasks.getDefinition(task.definitionId);
|
|
55
|
+
if (!definition) {
|
|
56
|
+
return await databaseResponse.error({
|
|
57
|
+
error: {
|
|
58
|
+
message: `Task "${task.id}" cannot be executed because there is no "${task.definitionId}" definition plugin.`,
|
|
59
|
+
code: "TASK_DEFINITION_ERROR",
|
|
60
|
+
data: {
|
|
61
|
+
definitionId: task.definitionId
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
const result = await manager.run(definition);
|
|
68
|
+
return await databaseResponse.from(result);
|
|
69
|
+
} catch (ex) {
|
|
70
|
+
return this.response.error({
|
|
71
|
+
error: {
|
|
72
|
+
message: ex.message,
|
|
73
|
+
code: ex.code || "TASK_ERROR",
|
|
74
|
+
stack: ex.stack,
|
|
75
|
+
data: {
|
|
76
|
+
...ex.data,
|
|
77
|
+
input: task.input
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async getTask(id) {
|
|
84
|
+
try {
|
|
85
|
+
const task = await this.runner.context.tasks.getTask(id);
|
|
86
|
+
if (task) {
|
|
87
|
+
return task;
|
|
88
|
+
}
|
|
89
|
+
} catch (ex) {
|
|
90
|
+
throw this.response.error({
|
|
91
|
+
error: {
|
|
92
|
+
message: ex.message,
|
|
93
|
+
code: ex.code || "TASK_ERROR",
|
|
94
|
+
stack: ex.stack,
|
|
95
|
+
data: ex.data
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
throw this.response.error({
|
|
100
|
+
error: {
|
|
101
|
+
message: `Task "${id}" cannot be executed because it does not exist.`,
|
|
102
|
+
code: "TASK_NOT_FOUND"
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
async getTaskLog(task) {
|
|
107
|
+
let taskLog = null;
|
|
108
|
+
/**
|
|
109
|
+
* First we are trying to get existing latest log.
|
|
110
|
+
*/
|
|
111
|
+
try {
|
|
112
|
+
taskLog = await this.context.tasks.getLatestLog(task.id);
|
|
113
|
+
} catch (ex) {
|
|
114
|
+
/**
|
|
115
|
+
* If error is not the NotFoundError, we need to throw it.
|
|
116
|
+
*/
|
|
117
|
+
if (ex instanceof _handlerGraphql.NotFoundError === false) {
|
|
118
|
+
throw this.response.error({
|
|
119
|
+
error: (0, _getObjectProperties.getObjectProperties)(ex)
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Otherwise just continue and create a new log.
|
|
124
|
+
*/
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const currentIteration = taskLog?.iteration || 0;
|
|
128
|
+
try {
|
|
129
|
+
return await this.context.tasks.createLog(task, {
|
|
130
|
+
executionName: this.response.event.executionName,
|
|
131
|
+
iteration: currentIteration + 1
|
|
132
|
+
});
|
|
133
|
+
} catch (ex) {
|
|
134
|
+
throw this.response.error({
|
|
135
|
+
error: (0, _getObjectProperties.getObjectProperties)(ex)
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.TaskControl = TaskControl;
|
|
141
|
+
|
|
142
|
+
//# sourceMappingURL=TaskControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_types","require","_TaskManager","_response","_TaskManagerStore","_handlerGraphql","_getObjectProperties","TaskControl","constructor","runner","response","context","run","event","taskId","webinyTaskId","task","getTask","ex","getObjectProperties","taskLog","getTaskLog","taskStatus","TaskDataStatus","ABORTED","aborted","taskResponse","TaskResponse","store","TaskManagerStore","manager","TaskManager","databaseResponse","DatabaseResponse","definition","tasks","getDefinition","definitionId","error","message","id","code","data","result","from","stack","input","getLatestLog","NotFoundError","currentIteration","iteration","createLog","executionName","exports"],"sources":["TaskControl.ts"],"sourcesContent":["import { ITaskEvent } from \"~/handler/types\";\nimport { Context, ITaskData, ITaskDataInput, ITaskLog, TaskDataStatus } from \"~/types\";\nimport { ITaskControl, ITaskRunner } from \"./abstractions\";\nimport { TaskManager } from \"./TaskManager\";\nimport { IResponse, IResponseErrorResult, IResponseResult } from \"~/response/abstractions\";\nimport { DatabaseResponse, TaskResponse } from \"~/response\";\nimport { TaskManagerStore } from \"./TaskManagerStore\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { getObjectProperties } from \"~/runner/utils/getObjectProperties\";\n\nexport class TaskControl implements ITaskControl {\n public readonly runner: ITaskRunner;\n public readonly response: IResponse;\n public readonly context: Context;\n\n public constructor(runner: ITaskRunner, response: IResponse, context: Context) {\n this.runner = runner;\n this.context = context;\n this.response = response;\n }\n\n public async run(event: Pick<ITaskEvent, \"webinyTaskId\">): Promise<IResponseResult> {\n const taskId = event.webinyTaskId;\n /**\n * This is the initial getTask idea.\n * We will need to take care of child tasks:\n * * child tasks can be in multiple levels (child task creates a child task, etc...).\n * * child tasks could be executed in parallel.\n */\n let task: ITaskData<ITaskDataInput>;\n try {\n task = await this.getTask(taskId);\n } catch (ex) {\n return getObjectProperties<IResponseErrorResult>(ex);\n }\n /**\n * As this as a run of the task, we need to create a new log entry.\n */\n\n let taskLog: ITaskLog;\n try {\n taskLog = await this.getTaskLog(task);\n } catch (ex) {\n return getObjectProperties<IResponseErrorResult>(ex);\n }\n /**\n * Make sure that task does not run if it is aborted.\n * This will effectively end the Step Function execution with a \"success\" status.\n */\n if (task.taskStatus === TaskDataStatus.ABORTED) {\n return this.response.aborted();\n }\n\n const taskResponse = new TaskResponse(this.response);\n const store = new TaskManagerStore(this.context, task, taskLog);\n\n const manager = new TaskManager(\n this.runner,\n this.context,\n this.response,\n taskResponse,\n store\n );\n\n const databaseResponse = new DatabaseResponse(this.response, store);\n\n const definition = this.context.tasks.getDefinition(task.definitionId);\n if (!definition) {\n return await databaseResponse.error({\n error: {\n message: `Task \"${task.id}\" cannot be executed because there is no \"${task.definitionId}\" definition plugin.`,\n code: \"TASK_DEFINITION_ERROR\",\n data: {\n definitionId: task.definitionId\n }\n }\n });\n }\n\n try {\n const result = await manager.run(definition);\n\n return await databaseResponse.from(result);\n } catch (ex) {\n return this.response.error({\n error: {\n message: ex.message,\n code: ex.code || \"TASK_ERROR\",\n stack: ex.stack,\n data: {\n ...ex.data,\n input: task.input\n }\n }\n });\n }\n }\n\n private async getTask<T = any>(id: string): Promise<ITaskData<T>> {\n try {\n const task = await this.runner.context.tasks.getTask<T>(id);\n if (task) {\n return task;\n }\n } catch (ex) {\n throw this.response.error({\n error: {\n message: ex.message,\n code: ex.code || \"TASK_ERROR\",\n stack: ex.stack,\n data: ex.data\n }\n });\n }\n throw this.response.error({\n error: {\n message: `Task \"${id}\" cannot be executed because it does not exist.`,\n code: \"TASK_NOT_FOUND\"\n }\n });\n }\n\n private async getTaskLog(task: ITaskData): Promise<ITaskLog> {\n let taskLog: ITaskLog | null = null;\n /**\n * First we are trying to get existing latest log.\n */\n try {\n taskLog = await this.context.tasks.getLatestLog(task.id);\n } catch (ex) {\n /**\n * If error is not the NotFoundError, we need to throw it.\n */\n if (ex instanceof NotFoundError === false) {\n throw this.response.error({\n error: getObjectProperties(ex)\n });\n }\n /**\n * Otherwise just continue and create a new log.\n */\n }\n\n const currentIteration = taskLog?.iteration || 0;\n\n try {\n return await this.context.tasks.createLog(task, {\n executionName: this.response.event.executionName,\n iteration: currentIteration + 1\n });\n } catch (ex) {\n throw this.response.error({\n error: getObjectProperties(ex)\n });\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ITaskEventValidation, ITaskEventValidationResult } from "./abstractions";
|
|
2
|
+
import { ITaskEvent } from "../handler/types";
|
|
3
|
+
export declare class TaskEventValidation implements ITaskEventValidation {
|
|
4
|
+
validate(event: Partial<ITaskEvent>): ITaskEventValidationResult;
|
|
5
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TaskEventValidation = void 0;
|
|
8
|
+
var _zod = _interopRequireDefault(require("zod"));
|
|
9
|
+
var _utils = require("@webiny/utils");
|
|
10
|
+
const validation = _zod.default.object({
|
|
11
|
+
webinyTaskId: _zod.default.string(),
|
|
12
|
+
webinyTaskDefinitionId: _zod.default.string(),
|
|
13
|
+
endpoint: _zod.default.string(),
|
|
14
|
+
tenant: _zod.default.string(),
|
|
15
|
+
locale: _zod.default.string(),
|
|
16
|
+
executionName: _zod.default.string(),
|
|
17
|
+
stateMachineId: _zod.default.string()
|
|
18
|
+
}).required();
|
|
19
|
+
class TaskEventValidation {
|
|
20
|
+
validate(event) {
|
|
21
|
+
const result = validation.safeParse(event);
|
|
22
|
+
if (result.success) {
|
|
23
|
+
return result.data;
|
|
24
|
+
}
|
|
25
|
+
throw (0, _utils.createZodError)(result.error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.TaskEventValidation = TaskEventValidation;
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=TaskEventValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_zod","_interopRequireDefault","require","_utils","validation","zod","object","webinyTaskId","string","webinyTaskDefinitionId","endpoint","tenant","locale","executionName","stateMachineId","required","TaskEventValidation","validate","event","result","safeParse","success","data","createZodError","error","exports"],"sources":["TaskEventValidation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { createZodError } from \"@webiny/utils\";\nimport { ITaskEventValidation, ITaskEventValidationResult } from \"./abstractions\";\nimport { ITaskEvent } from \"~/handler/types\";\n\nconst validation = zod\n .object({\n webinyTaskId: zod.string(),\n webinyTaskDefinitionId: zod.string(),\n endpoint: zod.string(),\n tenant: zod.string(),\n locale: zod.string(),\n executionName: zod.string(),\n stateMachineId: zod.string()\n })\n .required();\n\nexport class TaskEventValidation implements ITaskEventValidation {\n public validate(event: Partial<ITaskEvent>): ITaskEventValidationResult {\n const result = validation.safeParse(event);\n if (result.success) {\n return result.data;\n }\n throw createZodError(result.error);\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIA,MAAME,UAAU,GAAGC,YAAG,CACjBC,MAAM,CAAC;EACJC,YAAY,EAAEF,YAAG,CAACG,MAAM,CAAC,CAAC;EAC1BC,sBAAsB,EAAEJ,YAAG,CAACG,MAAM,CAAC,CAAC;EACpCE,QAAQ,EAAEL,YAAG,CAACG,MAAM,CAAC,CAAC;EACtBG,MAAM,EAAEN,YAAG,CAACG,MAAM,CAAC,CAAC;EACpBI,MAAM,EAAEP,YAAG,CAACG,MAAM,CAAC,CAAC;EACpBK,aAAa,EAAER,YAAG,CAACG,MAAM,CAAC,CAAC;EAC3BM,cAAc,EAAET,YAAG,CAACG,MAAM,CAAC;AAC/B,CAAC,CAAC,CACDO,QAAQ,CAAC,CAAC;AAER,MAAMC,mBAAmB,CAAiC;EACtDC,QAAQA,CAACC,KAA0B,EAA8B;IACpE,MAAMC,MAAM,GAAGf,UAAU,CAACgB,SAAS,CAACF,KAAK,CAAC;IAC1C,IAAIC,MAAM,CAACE,OAAO,EAAE;MAChB,OAAOF,MAAM,CAACG,IAAI;IACtB;IACA,MAAM,IAAAC,qBAAc,EAACJ,MAAM,CAACK,KAAK,CAAC;EACtC;AACJ;AAACC,OAAA,CAAAT,mBAAA,GAAAA,mBAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ITaskManager, ITaskRunner } from "./abstractions";
|
|
2
|
+
import { Context, ITaskDataInput, ITaskDefinition } from "../types";
|
|
3
|
+
import { IResponse, IResponseResult, ITaskResponse } from "../response/abstractions";
|
|
4
|
+
import { ITaskManagerStore } from "./abstractions";
|
|
5
|
+
export declare class TaskManager<T = ITaskDataInput> implements ITaskManager<T> {
|
|
6
|
+
private readonly runner;
|
|
7
|
+
private readonly context;
|
|
8
|
+
private readonly response;
|
|
9
|
+
private readonly taskResponse;
|
|
10
|
+
private readonly store;
|
|
11
|
+
constructor(runner: Pick<ITaskRunner, "isCloseToTimeout">, context: Context, response: IResponse, taskResponse: ITaskResponse, store: ITaskManagerStore);
|
|
12
|
+
run(definition: ITaskDefinition): Promise<IResponseResult>;
|
|
13
|
+
}
|