@webiny/tasks 5.40.5-beta.0 → 5.41.0-dbt.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/crud/trigger.tasks.js.map +1 -1
- package/graphql/utils.d.ts +2 -2
- package/handler/index.d.ts +1 -1
- package/package.json +19 -19
- package/response/TaskResponse.js +2 -2
- package/response/TaskResponse.js.map +1 -1
- package/response/abstractions/Response.d.ts +2 -2
- package/response/abstractions/TaskResponse.d.ts +2 -2
- package/runner/abstractions/TaskEventValidation.d.ts +1 -1
- package/runner/abstractions/TaskManagerStore.d.ts +8 -8
- package/runner/abstractions/TaskManagerStore.js.map +1 -1
- package/types.d.ts +8 -9
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
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 {\n input: ITaskCreateData;\n delay?: number;\n}\n\nconst validateDelay = ({ input, delay }: ValidateDelayParams): 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({\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
|
+
{"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":[]}
|
package/graphql/utils.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export declare const emptyResolver: () => {};
|
|
|
4
4
|
interface ResolveCallable<T = any> {
|
|
5
5
|
(): Promise<T>;
|
|
6
6
|
}
|
|
7
|
-
export declare const resolve: <T = any>(fn: ResolveCallable<T>) => Promise<Response<Awaited<T
|
|
8
|
-
export declare const resolveList: (fn: ResolveCallable) => Promise<ListResponse<any, CmsEntryMeta
|
|
7
|
+
export declare const resolve: <T = any>(fn: ResolveCallable<T>) => Promise<ErrorResponse | Response<Awaited<T>>>;
|
|
8
|
+
export declare const resolveList: (fn: ResolveCallable) => Promise<ListErrorResponse | ListResponse<any, CmsEntryMeta>>;
|
|
9
9
|
export {};
|
package/handler/index.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ import { ITaskRawEvent } from "./types";
|
|
|
5
5
|
export interface HandlerCallable {
|
|
6
6
|
(event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
|
|
7
7
|
}
|
|
8
|
-
export
|
|
8
|
+
export type HandlerParams = HandlerFactoryParams;
|
|
9
9
|
export declare const createHandler: (params: HandlerParams) => HandlerCallable;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/tasks",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.41.0-dbt.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@babel/runtime": "7.24.1",
|
|
16
16
|
"@types/aws-lambda": "8.10.136",
|
|
17
|
-
"@webiny/api": "5.
|
|
18
|
-
"@webiny/api-headless-cms": "5.
|
|
19
|
-
"@webiny/aws-sdk": "5.
|
|
20
|
-
"@webiny/error": "5.
|
|
21
|
-
"@webiny/handler": "5.
|
|
22
|
-
"@webiny/handler-aws": "5.
|
|
23
|
-
"@webiny/handler-graphql": "5.
|
|
24
|
-
"@webiny/plugins": "5.
|
|
25
|
-
"@webiny/pubsub": "5.
|
|
26
|
-
"@webiny/utils": "5.
|
|
17
|
+
"@webiny/api": "5.41.0-dbt.0",
|
|
18
|
+
"@webiny/api-headless-cms": "5.41.0-dbt.0",
|
|
19
|
+
"@webiny/aws-sdk": "5.41.0-dbt.0",
|
|
20
|
+
"@webiny/error": "5.41.0-dbt.0",
|
|
21
|
+
"@webiny/handler": "5.41.0-dbt.0",
|
|
22
|
+
"@webiny/handler-aws": "5.41.0-dbt.0",
|
|
23
|
+
"@webiny/handler-graphql": "5.41.0-dbt.0",
|
|
24
|
+
"@webiny/plugins": "5.41.0-dbt.0",
|
|
25
|
+
"@webiny/pubsub": "5.41.0-dbt.0",
|
|
26
|
+
"@webiny/utils": "5.41.0-dbt.0",
|
|
27
27
|
"deep-equal": "2.2.3",
|
|
28
28
|
"lodash": "4.17.21",
|
|
29
29
|
"object-merge-advanced": "12.1.0",
|
|
@@ -34,16 +34,16 @@
|
|
|
34
34
|
"@babel/core": "7.24.3",
|
|
35
35
|
"@babel/preset-env": "7.24.3",
|
|
36
36
|
"@babel/preset-typescript": "7.24.1",
|
|
37
|
-
"@webiny/api-i18n": "5.
|
|
38
|
-
"@webiny/api-security": "5.
|
|
39
|
-
"@webiny/api-tenancy": "5.
|
|
40
|
-
"@webiny/api-wcp": "5.
|
|
41
|
-
"@webiny/cli": "5.
|
|
42
|
-
"@webiny/project-utils": "5.
|
|
37
|
+
"@webiny/api-i18n": "5.41.0-dbt.0",
|
|
38
|
+
"@webiny/api-security": "5.41.0-dbt.0",
|
|
39
|
+
"@webiny/api-tenancy": "5.41.0-dbt.0",
|
|
40
|
+
"@webiny/api-wcp": "5.41.0-dbt.0",
|
|
41
|
+
"@webiny/cli": "5.41.0-dbt.0",
|
|
42
|
+
"@webiny/project-utils": "5.41.0-dbt.0",
|
|
43
43
|
"rimraf": "5.0.5",
|
|
44
44
|
"ttypescript": "1.5.15",
|
|
45
45
|
"type-fest": "2.19.0",
|
|
46
|
-
"typescript": "4.
|
|
46
|
+
"typescript": "4.9.5"
|
|
47
47
|
},
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"build": "yarn webiny run build",
|
|
54
54
|
"watch": "yarn webiny run watch"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "bbaec4dd1685579548c08bbde386aee5d96b80f8",
|
|
57
57
|
"adio": {
|
|
58
58
|
"ignore": {
|
|
59
59
|
"src": [
|
package/response/TaskResponse.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_getErrorProperties","require","MAX_WAITING_TIME","getWaitingTime","options","waitingTime","undefined","seconds","now","Date","date","getTime","TaskResponse","constructor","response","done","message","output","continue","input","wait","error","getError","aborted","Error","getErrorProperties","exports"],"sources":["TaskResponse.ts"],"sourcesContent":["import {\n IResponse,\n IResponseError,\n ITaskResponse,\n ITaskResponseAbortedResult,\n ITaskResponseContinueOptions,\n ITaskResponseContinueResult,\n ITaskResponseDoneResult,\n ITaskResponseDoneResultOutput,\n ITaskResponseErrorResult\n} from \"./abstractions\";\nimport { ITaskDataInput } from \"~/types\";\nimport { getErrorProperties } from \"~/utils/getErrorProperties\";\n\n/**\n * 355 days transformed into seconds.\n */\nconst MAX_WAITING_TIME = 30672000;\n\n/**\n * There are options to send:\n * * seconds - number of seconds to wait\n * * date - date until which to wait\n */\nconst getWaitingTime = (options?: ITaskResponseContinueOptions): number | undefined => {\n let waitingTime: number | undefined;\n if (!options) {\n return undefined;\n }\n if (\"seconds\" in options) {\n waitingTime = options.seconds;\n } else if (\"date\" in options) {\n const now = new Date();\n waitingTime = (options.date.getTime() - now.getTime()) / 1000;\n }\n if (!waitingTime || waitingTime < 0) {\n return undefined;\n }\n return waitingTime > MAX_WAITING_TIME ? MAX_WAITING_TIME : waitingTime;\n};\n\nexport class TaskResponse implements ITaskResponse {\n private readonly response: IResponse;\n\n public constructor(response: IResponse) {\n this.response = response;\n }\n\n public done<O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(\n message?: string | O,\n output?: O\n ): ITaskResponseDoneResult<O> {\n if (typeof message === \"object\" && !output) {\n return this.response.done({\n output: message\n });\n }\n return this.response.done<O>({\n message: message as string,\n output\n });\n }\n\n public continue<T = ITaskDataInput>(\n input: T,\n options?: ITaskResponseContinueOptions\n ): ITaskResponseContinueResult {\n const wait = getWaitingTime(options);\n if (!wait || wait < 1) {\n return this.response.continue({\n input\n });\n }\n return this.response.continue({\n input,\n wait\n });\n }\n\n public error(error: IResponseError | Error | string): ITaskResponseErrorResult {\n return this.response.error({\n error: this.getError(error)\n });\n }\n\n public aborted(): ITaskResponseAbortedResult {\n return this.response.aborted();\n }\n\n private getError(error: IResponseError | Error | string): IResponseError | Error {\n if (error instanceof Error) {\n return getErrorProperties(error);\n } else if (typeof error === \"string\") {\n return new Error(error);\n }\n return error;\n }\n}\n"],"mappings":";;;;;;AAYA,IAAAA,mBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAG,QAAQ;;AAEjC;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAIC,OAAsC,IAAyB;EACnF,IAAIC,WAA+B;EACnC,IAAI,CAACD,OAAO,EAAE;IACV,OAAOE,SAAS;EACpB;EACA,IAAI,SAAS,IAAIF,OAAO,EAAE;IACtBC,WAAW,GAAGD,OAAO,CAACG,OAAO;EACjC,CAAC,MAAM,IAAI,MAAM,IAAIH,OAAO,EAAE;IAC1B,MAAMI,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;IACtBJ,WAAW,GAAG,CAACD,OAAO,CAACM,IAAI,CAACC,OAAO,CAAC,CAAC,GAAGH,GAAG,CAACG,OAAO,CAAC,CAAC,IAAI,IAAI;EACjE;EACA,IAAI,CAACN,WAAW,IAAIA,WAAW,GAAG,CAAC,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,WAAW,GAAGH,gBAAgB,GAAGA,gBAAgB,GAAGG,WAAW;AAC1E,CAAC;AAEM,MAAMO,YAAY,CAA0B;EAGxCC,WAAWA,CAACC,QAAmB,EAAE;IACpC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEOC,IAAIA,CACPC,OAAoB,EACpBC,MAAU,EACgB;IAC1B,IAAI,OAAOD,OAAO,KAAK,QAAQ,IAAI,CAACC,MAAM,EAAE;MACxC,OAAO,IAAI,CAACH,QAAQ,CAACC,IAAI,CAAC;QACtBE,MAAM,EAAED;MACZ,CAAC,CAAC;IACN;IACA,OAAO,IAAI,CAACF,QAAQ,CAACC,IAAI,CAAI;MACzBC,OAAO,EAAEA,OAAiB;MAC1BC;IACJ,CAAC,CAAC;EACN;EAEOC,QAAQA,CACXC,KAAQ,EACRf,OAAsC,EACX;IAC3B,MAAMgB,IAAI,GAAGjB,cAAc,CAACC,OAAO,CAAC;IACpC,IAAI,CAACgB,IAAI,IAAIA,IAAI,GAAG,CAAC,EAAE;MACnB,OAAO,IAAI,CAACN,QAAQ,CAACI,QAAQ,CAAC;QAC1BC;
|
|
1
|
+
{"version":3,"names":["_getErrorProperties","require","MAX_WAITING_TIME","getWaitingTime","options","waitingTime","undefined","seconds","now","Date","date","getTime","TaskResponse","constructor","response","done","message","output","continue","input","wait","error","getError","aborted","Error","getErrorProperties","exports"],"sources":["TaskResponse.ts"],"sourcesContent":["import {\n IResponse,\n IResponseError,\n ITaskResponse,\n ITaskResponseAbortedResult,\n ITaskResponseContinueOptions,\n ITaskResponseContinueResult,\n ITaskResponseDoneResult,\n ITaskResponseDoneResultOutput,\n ITaskResponseErrorResult\n} from \"./abstractions\";\nimport { ITaskDataInput } from \"~/types\";\nimport { getErrorProperties } from \"~/utils/getErrorProperties\";\n\n/**\n * 355 days transformed into seconds.\n */\nconst MAX_WAITING_TIME = 30672000;\n\n/**\n * There are options to send:\n * * seconds - number of seconds to wait\n * * date - date until which to wait\n */\nconst getWaitingTime = (options?: ITaskResponseContinueOptions): number | undefined => {\n let waitingTime: number | undefined;\n if (!options) {\n return undefined;\n }\n if (\"seconds\" in options) {\n waitingTime = options.seconds;\n } else if (\"date\" in options) {\n const now = new Date();\n waitingTime = (options.date.getTime() - now.getTime()) / 1000;\n }\n if (!waitingTime || waitingTime < 0) {\n return undefined;\n }\n return waitingTime > MAX_WAITING_TIME ? MAX_WAITING_TIME : waitingTime;\n};\n\nexport class TaskResponse implements ITaskResponse {\n private readonly response: IResponse;\n\n public constructor(response: IResponse) {\n this.response = response;\n }\n\n public done<O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput>(\n message?: string | O,\n output?: O\n ): ITaskResponseDoneResult<O> {\n if (typeof message === \"object\" && !output) {\n return this.response.done({\n output: message\n });\n }\n return this.response.done<O>({\n message: message as string,\n output\n });\n }\n\n public continue<T = ITaskDataInput>(\n input: T,\n options?: ITaskResponseContinueOptions\n ): ITaskResponseContinueResult {\n const wait = getWaitingTime(options);\n if (!wait || wait < 1) {\n return this.response.continue({\n input: input as ITaskDataInput\n });\n }\n return this.response.continue({\n input: input as ITaskDataInput,\n wait\n });\n }\n\n public error(error: IResponseError | Error | string): ITaskResponseErrorResult {\n return this.response.error({\n error: this.getError(error)\n });\n }\n\n public aborted(): ITaskResponseAbortedResult {\n return this.response.aborted();\n }\n\n private getError(error: IResponseError | Error | string): IResponseError | Error {\n if (error instanceof Error) {\n return getErrorProperties(error);\n } else if (typeof error === \"string\") {\n return new Error(error);\n }\n return error;\n }\n}\n"],"mappings":";;;;;;AAYA,IAAAA,mBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAG,QAAQ;;AAEjC;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAIC,OAAsC,IAAyB;EACnF,IAAIC,WAA+B;EACnC,IAAI,CAACD,OAAO,EAAE;IACV,OAAOE,SAAS;EACpB;EACA,IAAI,SAAS,IAAIF,OAAO,EAAE;IACtBC,WAAW,GAAGD,OAAO,CAACG,OAAO;EACjC,CAAC,MAAM,IAAI,MAAM,IAAIH,OAAO,EAAE;IAC1B,MAAMI,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;IACtBJ,WAAW,GAAG,CAACD,OAAO,CAACM,IAAI,CAACC,OAAO,CAAC,CAAC,GAAGH,GAAG,CAACG,OAAO,CAAC,CAAC,IAAI,IAAI;EACjE;EACA,IAAI,CAACN,WAAW,IAAIA,WAAW,GAAG,CAAC,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,WAAW,GAAGH,gBAAgB,GAAGA,gBAAgB,GAAGG,WAAW;AAC1E,CAAC;AAEM,MAAMO,YAAY,CAA0B;EAGxCC,WAAWA,CAACC,QAAmB,EAAE;IACpC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEOC,IAAIA,CACPC,OAAoB,EACpBC,MAAU,EACgB;IAC1B,IAAI,OAAOD,OAAO,KAAK,QAAQ,IAAI,CAACC,MAAM,EAAE;MACxC,OAAO,IAAI,CAACH,QAAQ,CAACC,IAAI,CAAC;QACtBE,MAAM,EAAED;MACZ,CAAC,CAAC;IACN;IACA,OAAO,IAAI,CAACF,QAAQ,CAACC,IAAI,CAAI;MACzBC,OAAO,EAAEA,OAAiB;MAC1BC;IACJ,CAAC,CAAC;EACN;EAEOC,QAAQA,CACXC,KAAQ,EACRf,OAAsC,EACX;IAC3B,MAAMgB,IAAI,GAAGjB,cAAc,CAACC,OAAO,CAAC;IACpC,IAAI,CAACgB,IAAI,IAAIA,IAAI,GAAG,CAAC,EAAE;MACnB,OAAO,IAAI,CAACN,QAAQ,CAACI,QAAQ,CAAC;QAC1BC,KAAK,EAAEA;MACX,CAAC,CAAC;IACN;IACA,OAAO,IAAI,CAACL,QAAQ,CAACI,QAAQ,CAAC;MAC1BC,KAAK,EAAEA,KAAuB;MAC9BC;IACJ,CAAC,CAAC;EACN;EAEOC,KAAKA,CAACA,KAAsC,EAA4B;IAC3E,OAAO,IAAI,CAACP,QAAQ,CAACO,KAAK,CAAC;MACvBA,KAAK,EAAE,IAAI,CAACC,QAAQ,CAACD,KAAK;IAC9B,CAAC,CAAC;EACN;EAEOE,OAAOA,CAAA,EAA+B;IACzC,OAAO,IAAI,CAACT,QAAQ,CAACS,OAAO,CAAC,CAAC;EAClC;EAEQD,QAAQA,CAACD,KAAsC,EAA0B;IAC7E,IAAIA,KAAK,YAAYG,KAAK,EAAE;MACxB,OAAO,IAAAC,sCAAkB,EAACJ,KAAK,CAAC;IACpC,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAClC,OAAO,IAAIG,KAAK,CAACH,KAAK,CAAC;IAC3B;IACA,OAAOA,KAAK;EAChB;AACJ;AAACK,OAAA,CAAAd,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -4,8 +4,8 @@ import { IResponseDoneParams, IResponseDoneResult } from "./ResponseDoneResult";
|
|
|
4
4
|
import { IResponseErrorParams, IResponseErrorResult } from "./ResponseErrorResult";
|
|
5
5
|
import { IResponseAbortedResult } from "./ResponseAbortedResult";
|
|
6
6
|
import { ITaskResponseDoneResultOutput } from "./TaskResponse";
|
|
7
|
-
export
|
|
8
|
-
export
|
|
7
|
+
export type IResponseFromParams = IResponseDoneResult | IResponseContinueResult | IResponseErrorResult;
|
|
8
|
+
export type IResponseResult = IResponseDoneResult | IResponseContinueResult | IResponseErrorResult | IResponseAbortedResult;
|
|
9
9
|
export interface IResponse {
|
|
10
10
|
readonly event: ITaskEvent;
|
|
11
11
|
setEvent: (event: ITaskEvent) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ITaskDataInput, TaskResponseStatus } from "../../types";
|
|
2
2
|
import { IResponseError } from "./ResponseErrorResult";
|
|
3
|
-
export
|
|
3
|
+
export type ITaskResponseResult<I = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITaskResponseDoneResult<O> | ITaskResponseContinueResult<I> | ITaskResponseErrorResult | ITaskResponseAbortedResult;
|
|
4
4
|
export interface ITaskResponseDoneResultOutput {
|
|
5
5
|
error?: IResponseError;
|
|
6
6
|
[key: string]: string | string[] | number | boolean | undefined | Record<string, any> | IResponseError;
|
|
@@ -28,7 +28,7 @@ export interface ITaskResponseContinueOptionsUntil {
|
|
|
28
28
|
export interface ITaskResponseContinueOptionsSeconds {
|
|
29
29
|
seconds: number;
|
|
30
30
|
}
|
|
31
|
-
export
|
|
31
|
+
export type ITaskResponseContinueOptions = ITaskResponseContinueOptionsUntil | ITaskResponseContinueOptionsSeconds;
|
|
32
32
|
export interface ITaskResponseDoneCallable<O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
|
|
33
33
|
(output?: O): ITaskResponseDoneResult<O>;
|
|
34
34
|
(message?: string, output?: O): ITaskResponseDoneResult<O>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ITaskEvent } from "../../handler/types";
|
|
2
|
-
export
|
|
2
|
+
export type ITaskEventValidationResult = ITaskEvent;
|
|
3
3
|
export interface ITaskEventValidation {
|
|
4
4
|
validate: (event: Partial<ITaskEvent>) => ITaskEventValidationResult;
|
|
5
5
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { IResponseError, ITask, ITaskDataInput, ITaskLogItemData, ITaskResponseDoneResultOutput, ITaskUpdateData, TaskDataStatus } from "../../types";
|
|
2
|
-
export
|
|
3
|
-
export interface ITaskManagerStoreUpdateTaskValuesCb<T
|
|
2
|
+
export type ITaskManagerStoreUpdateTaskValues<T = ITaskDataInput> = T;
|
|
3
|
+
export interface ITaskManagerStoreUpdateTaskValuesCb<T = ITaskDataInput> {
|
|
4
4
|
(input: T): T;
|
|
5
5
|
}
|
|
6
6
|
export interface ITaskManagerStoreUpdateTaskInputOptions {
|
|
7
7
|
save: boolean;
|
|
8
8
|
}
|
|
9
|
-
export
|
|
10
|
-
export interface ITaskManagerStoreUpdateTaskParamCb<T
|
|
9
|
+
export type ITaskManagerStoreUpdateTaskInputParam<T = ITaskDataInput> = ITaskManagerStoreUpdateTaskValuesCb<T> | Partial<ITaskManagerStoreUpdateTaskValues<T>>;
|
|
10
|
+
export interface ITaskManagerStoreUpdateTaskParamCb<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
|
|
11
11
|
(task: ITask<T, O>): ITaskUpdateData<T, O>;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
14
|
-
export
|
|
13
|
+
export type ITaskManagerStoreUpdateTask<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITaskUpdateData<T, O>;
|
|
14
|
+
export type ITaskManagerStoreUpdateTaskParams<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITaskManagerStoreUpdateTaskParamCb<T, O> | Partial<ITaskManagerStoreUpdateTask<T, O>>;
|
|
15
15
|
export interface ITaskManagerStoreInfoLog {
|
|
16
16
|
message: string;
|
|
17
17
|
data?: ITaskLogItemData;
|
|
@@ -42,7 +42,7 @@ export interface ITaskManagerStoreAddLogOptions {
|
|
|
42
42
|
/**
|
|
43
43
|
* Interface should not be used outside the @webiny/tasks package.
|
|
44
44
|
*/
|
|
45
|
-
export interface ITaskManagerStorePrivate<T
|
|
45
|
+
export interface ITaskManagerStorePrivate<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
|
|
46
46
|
getTask: () => ITask<T, O>;
|
|
47
47
|
getStatus: () => TaskDataStatus;
|
|
48
48
|
/**
|
|
@@ -83,4 +83,4 @@ export interface ITaskManagerStorePrivate<T extends ITaskDataInput = ITaskDataIn
|
|
|
83
83
|
*/
|
|
84
84
|
save(): Promise<void>;
|
|
85
85
|
}
|
|
86
|
-
export
|
|
86
|
+
export type ITaskManagerStore<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = Omit<ITaskManagerStorePrivate<T, O>, "save">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["TaskManagerStore.ts"],"sourcesContent":["import {\n IResponseError,\n ITask,\n ITaskDataInput,\n ITaskLogItemData,\n ITaskResponseDoneResultOutput,\n ITaskUpdateData,\n TaskDataStatus\n} from \"~/types\";\n\nexport type ITaskManagerStoreUpdateTaskValues<T
|
|
1
|
+
{"version":3,"names":[],"sources":["TaskManagerStore.ts"],"sourcesContent":["import {\n IResponseError,\n ITask,\n ITaskDataInput,\n ITaskLogItemData,\n ITaskResponseDoneResultOutput,\n ITaskUpdateData,\n TaskDataStatus\n} from \"~/types\";\n\nexport type ITaskManagerStoreUpdateTaskValues<T = ITaskDataInput> = T;\n\nexport interface ITaskManagerStoreUpdateTaskValuesCb<T = ITaskDataInput> {\n (input: T): T;\n}\n\nexport interface ITaskManagerStoreUpdateTaskInputOptions {\n save: boolean;\n}\n\nexport type ITaskManagerStoreUpdateTaskInputParam<T = ITaskDataInput> =\n | ITaskManagerStoreUpdateTaskValuesCb<T>\n | Partial<ITaskManagerStoreUpdateTaskValues<T>>;\n\nexport interface ITaskManagerStoreUpdateTaskParamCb<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n (task: ITask<T, O>): ITaskUpdateData<T, O>;\n}\n\nexport type ITaskManagerStoreUpdateTask<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITaskUpdateData<T, O>;\n\nexport type ITaskManagerStoreUpdateTaskParams<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = ITaskManagerStoreUpdateTaskParamCb<T, O> | Partial<ITaskManagerStoreUpdateTask<T, O>>;\n\nexport interface ITaskManagerStoreInfoLog {\n message: string;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskManagerStoreErrorLog {\n message: string;\n data?: ITaskLogItemData;\n error: IResponseError | Error;\n}\n\nexport interface ITaskManagerStoreSetOutputOptions {\n /**\n * Default is true.\n */\n save?: boolean;\n}\n\nexport interface ITaskManagerStoreUpdateTaskOptions {\n /**\n * Default is true.\n */\n save?: boolean;\n}\n\nexport interface ITaskManagerStoreAddLogOptions {\n /**\n * Default is true.\n */\n save?: boolean;\n}\n\n/**\n * Interface should not be used outside the @webiny/tasks package.\n */\nexport interface ITaskManagerStorePrivate<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> {\n getTask: () => ITask<T, O>;\n getStatus: () => TaskDataStatus;\n /**\n * @throws {Error} If task not found or something goes wrong during the database update.\n */\n updateTask(\n params: ITaskManagerStoreUpdateTaskParams<T, O>,\n options?: ITaskManagerStoreUpdateTaskOptions\n ): Promise<void>;\n /**\n * Update the task input, which are used to store custom user data.\n * You can send partial input, and it will be merged with the existing input.\n *\n * @throws {Error} If task not found or something goes wrong during the database update.\n */\n updateInput: (\n params: ITaskManagerStoreUpdateTaskInputParam<T>,\n options?: ITaskManagerStoreUpdateTaskInputOptions\n ) => Promise<void>;\n getInput: () => T;\n /**\n * Update the task output, which are used to store the output data.\n * You can send partial output, and it will be merged with the existing output.\n *\n * Second parameter is optional options, and it contains a possibility not to store the task immediately.\n *\n * @throws {Error} If task not found or something goes wrong during the database update.\n */\n updateOutput: (\n values: Partial<O>,\n options?: ITaskManagerStoreSetOutputOptions\n ) => Promise<void>;\n getOutput: () => O;\n /**\n * @throws {Error} If task not found or something goes wrong during the database update.\n */\n addInfoLog: (log: ITaskManagerStoreInfoLog) => Promise<void>;\n /**\n * @throws {Error} If task not found or something goes wrong during the database update.\n *\n *\n */\n addErrorLog: (log: ITaskManagerStoreErrorLog) => Promise<void>;\n /**\n * Should store the task and logs into the database, if any.\n * If nothing to update, it should skip calling the internal store methods.\n */\n save(): Promise<void>;\n}\n\nexport type ITaskManagerStore<\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> = Omit<ITaskManagerStorePrivate<T, O>, \"save\">;\n"],"mappings":"","ignoreList":[]}
|
package/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { IResponseError, ITaskResponse, ITaskResponseDoneResultOutput, ITaskResp
|
|
|
4
4
|
import { ITaskManagerStore } from "./runner/abstractions";
|
|
5
5
|
import { PutEventsCommandOutput } from "@webiny/aws-sdk/client-eventbridge";
|
|
6
6
|
import { SecurityPermission } from "@webiny/api-security/types";
|
|
7
|
+
import { GenericRecord } from "@webiny/api/types";
|
|
7
8
|
export { PutEventsCommandOutput };
|
|
8
9
|
export * from "./handler/types";
|
|
9
10
|
export * from "./response/abstractions";
|
|
@@ -11,9 +12,7 @@ export * from "./runner/abstractions";
|
|
|
11
12
|
export interface ITaskConfig {
|
|
12
13
|
readonly eventBusName: string;
|
|
13
14
|
}
|
|
14
|
-
export
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
}
|
|
15
|
+
export type ITaskDataInput = GenericRecord;
|
|
17
16
|
export declare enum ITaskLogItemType {
|
|
18
17
|
INFO = "info",
|
|
19
18
|
ERROR = "error"
|
|
@@ -34,7 +33,7 @@ export interface ITaskLogItemError extends ITaskLogItemBase {
|
|
|
34
33
|
type: ITaskLogItemType.ERROR;
|
|
35
34
|
error?: IResponseError;
|
|
36
35
|
}
|
|
37
|
-
export
|
|
36
|
+
export type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;
|
|
38
37
|
export interface ITaskLog {
|
|
39
38
|
/**
|
|
40
39
|
* ID without the revision number (for example: #0001).
|
|
@@ -79,7 +78,7 @@ export interface ITask<T = any, O extends ITaskResponseDoneResultOutput = ITaskR
|
|
|
79
78
|
iterations: number;
|
|
80
79
|
parentId?: string;
|
|
81
80
|
}
|
|
82
|
-
export
|
|
81
|
+
export type IGetTaskResponse<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITask<T, O> | null;
|
|
83
82
|
export interface IListTasksResponse<T = any, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> {
|
|
84
83
|
items: ITask<T, O>[];
|
|
85
84
|
meta: CmsEntryMeta;
|
|
@@ -88,9 +87,9 @@ export interface IListTaskLogsResponse {
|
|
|
88
87
|
items: ITaskLog[];
|
|
89
88
|
meta: CmsEntryMeta;
|
|
90
89
|
}
|
|
91
|
-
export
|
|
92
|
-
export
|
|
93
|
-
export
|
|
90
|
+
export type ICreateTaskResponse<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITask<T, O>;
|
|
91
|
+
export type IUpdateTaskResponse<T = ITaskDataInput, O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput> = ITask<T, O>;
|
|
92
|
+
export type IDeleteTaskResponse = boolean;
|
|
94
93
|
export interface IListTaskParams extends Omit<CmsEntryListParams, "fields" | "search"> {
|
|
95
94
|
where?: CmsEntryListWhere & {
|
|
96
95
|
parentId?: string;
|
|
@@ -256,7 +255,7 @@ export declare enum TaskResponseStatus {
|
|
|
256
255
|
CONTINUE = "continue",
|
|
257
256
|
ABORTED = "aborted"
|
|
258
257
|
}
|
|
259
|
-
export
|
|
258
|
+
export type ITaskDefinitionField = Pick<CmsModelField, "fieldId" | "type" | "label" | "renderer" | "helpText" | "placeholderText" | "predefinedValues" | "validation" | "listValidation" | "multipleValues" | "settings">;
|
|
260
259
|
export interface ITaskBeforeTriggerParams<C extends Context = Context, I = ITaskDataInput> {
|
|
261
260
|
context: C;
|
|
262
261
|
data: ITaskCreateData<I>;
|
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\";\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 interface ITaskDataInput {\n [key: string]: any;\n}\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;AAKA,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,IAU1BW,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":["_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":[]}
|