@webiny/tasks 5.43.2-beta.0 → 6.0.0-alpha.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.
@@ -9,7 +9,6 @@ var _error = _interopRequireDefault(require("@webiny/error"));
9
9
  var _types = require("../types");
10
10
  var _handlerGraphql = require("@webiny/handler-graphql");
11
11
  var _service = require("../service");
12
- var _convertDateToString = require("../utils/convertDateToString");
13
12
  const MAX_DELAY_DAYS = 355;
14
13
  const MAX_DELAY_SECONDS = MAX_DELAY_DAYS * 24 * 60 * 60;
15
14
  const validateDelay = ({
@@ -87,7 +86,7 @@ const createServiceCrud = context => {
87
86
  throw ex;
88
87
  }
89
88
  return await context.tasks.updateTask(task.id, {
90
- eventResponse: (0, _convertDateToString.convertDateToString)(result)
89
+ eventResponse: result
91
90
  });
92
91
  },
93
92
  fetchServiceInfo: async input => {
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_types","_handlerGraphql","_service","_convertDateToString","MAX_DELAY_DAYS","MAX_DELAY_SECONDS","validateDelay","input","delay","Number","isInteger","WebinyError","createServiceCrud","context","service","createService","trigger","params","definition","id","inputValues","name","parent","tasks","getDefinition","title","definitionId","parentId","onBeforeTrigger","data","task","createTask","ex","console","log","result","send","error","deleteTask","updateTask","eventResponse","convertDateToString","fetchServiceInfo","getTask","NotFoundError","fetch","abort","TaskDataStatus","PENDING","RUNNING","includes","taskStatus","status","taskLog","getLatestLog","createLog","iteration","executionName","updatedTask","ABORTED","updateLog","items","concat","message","type","TaskLogItemType","INFO","createdOn","Date","toISOString","onAbort","exports"],"sources":["service.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n Context,\n ITask,\n ITaskAbortParams,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskResponseDoneResultOutput,\n ITasksContextServiceObject,\n ITaskTriggerParams\n} from \"~/types\";\nimport { TaskDataStatus, TaskLogItemType } from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createService } from \"~/service\";\nimport { IStepFunctionServiceFetchResult } from \"~/service/StepFunctionServicePlugin\";\nimport { convertDateToString } from \"~/utils/convertDateToString\";\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 createServiceCrud = (context: Context): ITasksContextServiceObject => {\n const service = createService({\n context\n });\n\n return {\n trigger: async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params: ITaskTriggerParams<T>\n ): Promise<ITask<T, O>> => {\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 let task: ITask<T>;\n try {\n task = await context.tasks.createTask<T>(input);\n } catch (ex) {\n console.log(\"Could not create the task.\", ex);\n throw ex;\n }\n\n let result: Awaited<ReturnType<typeof service.send>> | null = null;\n try {\n result = await service.send(task, delay);\n\n if (!result) {\n throw new WebinyError(\n `Could not trigger the step function!`,\n \"TRIGGER_STEP_FUNCTION_ERROR\",\n {\n task\n }\n );\n }\n } catch (ex) {\n console.log(\"Could not trigger the step function.\");\n console.error(ex);\n /**\n * In case of failure to create the Event Bridge Event, we need to delete the task that was meant to be created.\n * TODO maybe we can leave the task and update it as failed - with event bridge error?\n */\n await context.tasks.deleteTask(task.id);\n throw ex;\n }\n return await context.tasks.updateTask<T, O>(task.id, {\n eventResponse: convertDateToString(result)\n });\n },\n fetchServiceInfo: async (\n input: ITask | string\n ): Promise<IStepFunctionServiceFetchResult | null> => {\n const task = typeof input === \"object\" ? input : await context.tasks.getTask(input);\n if (!task && typeof input === \"string\") {\n throw new NotFoundError(`Task \"${input}\" was not found!`);\n } else if (!task) {\n throw new WebinyError(`Task was not found!`, \"TASK_FETCH_ERROR\", {\n input\n });\n }\n\n try {\n return (await service.fetch(task)) as IStepFunctionServiceFetchResult | null;\n } catch (ex) {\n console.log(\"Service fetch error.\");\n console.error(ex);\n return null;\n }\n },\n abort: async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params: ITaskAbortParams\n ): Promise<ITask<T, O>> => {\n const task = await context.tasks.getTask<T, O>(params.id);\n if (!task) {\n throw new NotFoundError(`Task \"${params.id}\" was not found!`);\n }\n\n const definition = context.tasks.getDefinition<Context, T, O>(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<T, O>(task.id, {\n taskStatus: TaskDataStatus.ABORTED\n });\n await context.tasks.updateLog(taskLog.id, {\n items: taskLog.items.concat([\n {\n message: params.message || \"Task aborted.\",\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ])\n });\n /**\n * TODO: determine when to kick off the onAbort hook\n */\n if (definition.onAbort) {\n await definition.onAbort({\n 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","_service","MAX_DELAY_DAYS","MAX_DELAY_SECONDS","validateDelay","input","delay","Number","isInteger","WebinyError","createServiceCrud","context","service","createService","trigger","params","definition","id","inputValues","name","parent","tasks","getDefinition","title","definitionId","parentId","onBeforeTrigger","data","task","createTask","ex","console","log","result","send","error","deleteTask","updateTask","eventResponse","fetchServiceInfo","getTask","NotFoundError","fetch","abort","TaskDataStatus","PENDING","RUNNING","includes","taskStatus","status","taskLog","getLatestLog","createLog","iteration","executionName","updatedTask","ABORTED","updateLog","items","concat","message","type","TaskLogItemType","INFO","createdOn","Date","toISOString","onAbort","exports"],"sources":["service.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n Context,\n ITask,\n ITaskAbortParams,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskResponseDoneResultOutput,\n ITasksContextServiceObject,\n ITaskTriggerParams\n} from \"~/types\";\nimport { TaskDataStatus, TaskLogItemType } from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createService } from \"~/service\";\nimport { IStepFunctionServiceFetchResult } from \"~/service/StepFunctionServicePlugin\";\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 createServiceCrud = (context: Context): ITasksContextServiceObject => {\n const service = createService({\n context\n });\n\n return {\n trigger: async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params: ITaskTriggerParams<T>\n ): Promise<ITask<T, O>> => {\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 let task: ITask<T>;\n try {\n task = await context.tasks.createTask<T>(input);\n } catch (ex) {\n console.log(\"Could not create the task.\", ex);\n throw ex;\n }\n\n let result: Awaited<ReturnType<typeof service.send>> | null = null;\n try {\n result = await service.send(task, delay);\n\n if (!result) {\n throw new WebinyError(\n `Could not trigger the step function!`,\n \"TRIGGER_STEP_FUNCTION_ERROR\",\n {\n task\n }\n );\n }\n } catch (ex) {\n console.log(\"Could not trigger the step function.\");\n console.error(ex);\n /**\n * In case of failure to create the Event Bridge Event, we need to delete the task that was meant to be created.\n * TODO maybe we can leave the task and update it as failed - with event bridge error?\n */\n await context.tasks.deleteTask(task.id);\n throw ex;\n }\n return await context.tasks.updateTask<T, O>(task.id, {\n eventResponse: result\n });\n },\n fetchServiceInfo: async (\n input: ITask | string\n ): Promise<IStepFunctionServiceFetchResult | null> => {\n const task = typeof input === \"object\" ? input : await context.tasks.getTask(input);\n if (!task && typeof input === \"string\") {\n throw new NotFoundError(`Task \"${input}\" was not found!`);\n } else if (!task) {\n throw new WebinyError(`Task was not found!`, \"TASK_FETCH_ERROR\", {\n input\n });\n }\n\n try {\n return (await service.fetch(task)) as IStepFunctionServiceFetchResult | null;\n } catch (ex) {\n console.log(\"Service fetch error.\");\n console.error(ex);\n return null;\n }\n },\n abort: async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params: ITaskAbortParams\n ): Promise<ITask<T, O>> => {\n const task = await context.tasks.getTask<T, O>(params.id);\n if (!task) {\n throw new NotFoundError(`Task \"${params.id}\" was not found!`);\n }\n\n const definition = context.tasks.getDefinition<Context, T, O>(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<T, O>(task.id, {\n taskStatus: TaskDataStatus.ABORTED\n });\n await context.tasks.updateLog(taskLog.id, {\n items: taskLog.items.concat([\n {\n message: params.message || \"Task aborted.\",\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ])\n });\n /**\n * TODO: determine when to kick off the onAbort hook\n */\n if (definition.onAbort) {\n await definition.onAbort({\n 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":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAYA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAGA,MAAMI,cAAc,GAAG,GAAG;AAC1B,MAAMC,iBAAiB,GAAGD,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAOvD,MAAME,aAAa,GAAGA,CAAqB;EAAEC,KAAK;EAAEC;AAA8B,CAAC,KAAW;EAC1F,IAAI,CAACA,KAAK,IAAIA,KAAK,GAAG,CAAC,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIC,MAAM,CAACC,SAAS,CAACF,KAAK,CAAC,KAAK,KAAK,EAAE;IACvF;EACJ,CAAC,MAAM,IAAIA,KAAK,GAAGH,iBAAiB,EAAE;IAClC;EACJ;EACA,MAAM,IAAIM,cAAW,CACjB,mCAAmCP,cAAc,QAAQ,EACzD,iBAAiB,EACjB;IACI,GAAGG,KAAK;IACRC;EACJ,CACJ,CAAC;AACL,CAAC;AAEM,MAAMI,iBAAiB,GAAIC,OAAgB,IAAiC;EAC/E,MAAMC,OAAO,GAAG,IAAAC,sBAAa,EAAC;IAC1BF;EACJ,CAAC,CAAC;EAEF,OAAO;IACHG,OAAO,EAAE,MAILC,MAA6B,IACN;MACvB,MAAM;QAAEC,UAAU,EAAEC,EAAE;QAAEZ,KAAK,EAAEa,WAAW;QAAEC,IAAI;QAAEC,MAAM;QAAEd,KAAK,GAAG;MAAE,CAAC,GAAGS,MAAM;MAC9E,MAAMC,UAAU,GAAGL,OAAO,CAACU,KAAK,CAACC,aAAa,CAACL,EAAE,CAAC;MAClD,IAAI,CAACD,UAAU,EAAE;QACb,MAAM,IAAIP,cAAW,CAAC,gCAAgC,EAAE,uBAAuB,EAAE;UAC7EQ;QACJ,CAAC,CAAC;MACN;MACA,MAAMZ,KAAyB,GAAG;QAC9Bc,IAAI,EAAEA,IAAI,IAAIH,UAAU,CAACO,KAAK;QAC9BC,YAAY,EAAEP,EAAE;QAChBZ,KAAK,EAAEa,WAAW,IAAK,CAAC,CAAO;QAC/BO,QAAQ,EAAEL,MAAM,EAAEH;MACtB,CAAC;MACD,IAAID,UAAU,CAACU,eAAe,EAAE;QAC5B,MAAMV,UAAU,CAACU,eAAe,CAAI;UAChCf,OAAO;UACPgB,IAAI,EAAEtB;QACV,CAAC,CAAC;MACN;MACAD,aAAa,CAAI;QACbC,KAAK;QACLC;MACJ,CAAC,CAAC;MAEF,IAAIsB,IAAc;MAClB,IAAI;QACAA,IAAI,GAAG,MAAMjB,OAAO,CAACU,KAAK,CAACQ,UAAU,CAAIxB,KAAK,CAAC;MACnD,CAAC,CAAC,OAAOyB,EAAE,EAAE;QACTC,OAAO,CAACC,GAAG,CAAC,4BAA4B,EAAEF,EAAE,CAAC;QAC7C,MAAMA,EAAE;MACZ;MAEA,IAAIG,MAAuD,GAAG,IAAI;MAClE,IAAI;QACAA,MAAM,GAAG,MAAMrB,OAAO,CAACsB,IAAI,CAACN,IAAI,EAAEtB,KAAK,CAAC;QAExC,IAAI,CAAC2B,MAAM,EAAE;UACT,MAAM,IAAIxB,cAAW,CACjB,sCAAsC,EACtC,6BAA6B,EAC7B;YACImB;UACJ,CACJ,CAAC;QACL;MACJ,CAAC,CAAC,OAAOE,EAAE,EAAE;QACTC,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;QACnDD,OAAO,CAACI,KAAK,CAACL,EAAE,CAAC;QACjB;AAChB;AACA;AACA;QACgB,MAAMnB,OAAO,CAACU,KAAK,CAACe,UAAU,CAACR,IAAI,CAACX,EAAE,CAAC;QACvC,MAAMa,EAAE;MACZ;MACA,OAAO,MAAMnB,OAAO,CAACU,KAAK,CAACgB,UAAU,CAAOT,IAAI,CAACX,EAAE,EAAE;QACjDqB,aAAa,EAAEL;MACnB,CAAC,CAAC;IACN,CAAC;IACDM,gBAAgB,EAAE,MACdlC,KAAqB,IAC6B;MAClD,MAAMuB,IAAI,GAAG,OAAOvB,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,MAAMM,OAAO,CAACU,KAAK,CAACmB,OAAO,CAACnC,KAAK,CAAC;MACnF,IAAI,CAACuB,IAAI,IAAI,OAAOvB,KAAK,KAAK,QAAQ,EAAE;QACpC,MAAM,IAAIoC,6BAAa,CAAC,SAASpC,KAAK,kBAAkB,CAAC;MAC7D,CAAC,MAAM,IAAI,CAACuB,IAAI,EAAE;QACd,MAAM,IAAInB,cAAW,CAAC,qBAAqB,EAAE,kBAAkB,EAAE;UAC7DJ;QACJ,CAAC,CAAC;MACN;MAEA,IAAI;QACA,OAAQ,MAAMO,OAAO,CAAC8B,KAAK,CAACd,IAAI,CAAC;MACrC,CAAC,CAAC,OAAOE,EAAE,EAAE;QACTC,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC;QACnCD,OAAO,CAACI,KAAK,CAACL,EAAE,CAAC;QACjB,OAAO,IAAI;MACf;IACJ,CAAC;IACDa,KAAK,EAAE,MAIH5B,MAAwB,IACD;MACvB,MAAMa,IAAI,GAAG,MAAMjB,OAAO,CAACU,KAAK,CAACmB,OAAO,CAAOzB,MAAM,CAACE,EAAE,CAAC;MACzD,IAAI,CAACW,IAAI,EAAE;QACP,MAAM,IAAIa,6BAAa,CAAC,SAAS1B,MAAM,CAACE,EAAE,kBAAkB,CAAC;MACjE;MAEA,MAAMD,UAAU,GAAGL,OAAO,CAACU,KAAK,CAACC,aAAa,CAAgBM,IAAI,CAACJ,YAAY,CAAC;MAChF,IAAI,CAACR,UAAU,EAAE;QACb,MAAM,IAAIP,cAAW,CAAC,gCAAgC,EAAE,uBAAuB,EAAE;UAC7EQ,EAAE,EAAEW,IAAI,CAACX;QACb,CAAC,CAAC;MACN;MACA;AACZ;AACA;MACY,IACI,CAAC2B,qBAAc,CAACC,OAAO,EAAED,qBAAc,CAACE,OAAO,CAAC,CAACC,QAAQ,CAACnB,IAAI,CAACoB,UAAU,CAAC,KAAK,KAAK,EACtF;QACE,MAAM,IAAIvC,cAAW,CACjB,qDAAqD,EACrD,kBAAkB,EAClB;UACIQ,EAAE,EAAEF,MAAM,CAACE,EAAE;UACbgC,MAAM,EAAErB,IAAI,CAACoB;QACjB,CACJ,CAAC;MACL;MACA,IAAIE,OAAwB,GAAG,IAAI;MACnC,IAAI;QACAA,OAAO,GAAG,MAAMvC,OAAO,CAACU,KAAK,CAAC8B,YAAY,CAACvB,IAAI,CAACX,EAAE,CAAC;MACvD,CAAC,CAAC,OAAOa,EAAE,EAAE,CAAC;MACd,IAAI,CAACoB,OAAO,EAAE;QACVA,OAAO,GAAG,MAAMvC,OAAO,CAACU,KAAK,CAAC+B,SAAS,CAACxB,IAAI,EAAE;UAC1CyB,SAAS,EAAE,CAAC;UACZC,aAAa,EAAE1B,IAAI,CAAC0B;QACxB,CAAC,CAAC;MACN;MACA,IAAI;QACA,MAAMC,WAAW,GAAG,MAAM5C,OAAO,CAACU,KAAK,CAACgB,UAAU,CAAOT,IAAI,CAACX,EAAE,EAAE;UAC9D+B,UAAU,EAAEJ,qBAAc,CAACY;QAC/B,CAAC,CAAC;QACF,MAAM7C,OAAO,CAACU,KAAK,CAACoC,SAAS,CAACP,OAAO,CAACjC,EAAE,EAAE;UACtCyC,KAAK,EAAER,OAAO,CAACQ,KAAK,CAACC,MAAM,CAAC,CACxB;YACIC,OAAO,EAAE7C,MAAM,CAAC6C,OAAO,IAAI,eAAe;YAC1CC,IAAI,EAAEC,sBAAe,CAACC,IAAI;YAC1BC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC;UACtC,CAAC,CACJ;QACL,CAAC,CAAC;QACF;AAChB;AACA;QACgB,IAAIlD,UAAU,CAACmD,OAAO,EAAE;UACpB,MAAMnD,UAAU,CAACmD,OAAO,CAAC;YACrBxD,OAAO;YACPiB,IAAI,EAAE2B;UACV,CAAC,CAAC;QACN;QAEA,OAAOA,WAAW;MACtB,CAAC,CAAC,OAAOzB,EAAE,EAAE;QACT,MAAM,IAAIrB,cAAW,CAAC,2BAA2B,EAAE,kBAAkB,EAAE;UACnEQ,EAAE,EAAEF,MAAM,CAACE,EAAE;UACb2C,OAAO,EAAE9B,EAAE,CAAC8B;QAChB,CAAC,CAAC;MACN;IACJ;EACJ,CAAC;AACL,CAAC;AAACQ,OAAA,CAAA1D,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -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>> | ErrorResponse>;
8
- export declare const resolveList: (fn: ResolveCallable) => Promise<ListResponse<any, CmsEntryMeta> | ListErrorResponse>;
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/tasks",
3
- "version": "5.43.2-beta.0",
3
+ "version": "6.0.0-alpha.0",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,16 +12,16 @@
12
12
  ],
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@webiny/api": "5.43.2-beta.0",
16
- "@webiny/api-headless-cms": "5.43.2-beta.0",
17
- "@webiny/aws-sdk": "5.43.2-beta.0",
18
- "@webiny/error": "5.43.2-beta.0",
19
- "@webiny/handler": "5.43.2-beta.0",
20
- "@webiny/handler-aws": "5.43.2-beta.0",
21
- "@webiny/handler-graphql": "5.43.2-beta.0",
22
- "@webiny/plugins": "5.43.2-beta.0",
23
- "@webiny/pubsub": "5.43.2-beta.0",
24
- "@webiny/utils": "5.43.2-beta.0",
15
+ "@webiny/api": "6.0.0-alpha.0",
16
+ "@webiny/api-headless-cms": "6.0.0-alpha.0",
17
+ "@webiny/aws-sdk": "6.0.0-alpha.0",
18
+ "@webiny/error": "6.0.0-alpha.0",
19
+ "@webiny/handler": "6.0.0-alpha.0",
20
+ "@webiny/handler-aws": "6.0.0-alpha.0",
21
+ "@webiny/handler-graphql": "6.0.0-alpha.0",
22
+ "@webiny/plugins": "6.0.0-alpha.0",
23
+ "@webiny/pubsub": "6.0.0-alpha.0",
24
+ "@webiny/utils": "6.0.0-alpha.0",
25
25
  "deep-equal": "2.2.3",
26
26
  "lodash": "4.17.21",
27
27
  "object-merge-advanced": "12.1.0",
@@ -29,11 +29,11 @@
29
29
  "zod": "3.23.8"
30
30
  },
31
31
  "devDependencies": {
32
- "@webiny/api-i18n": "5.43.2-beta.0",
33
- "@webiny/api-security": "5.43.2-beta.0",
34
- "@webiny/api-tenancy": "5.43.2-beta.0",
35
- "@webiny/api-wcp": "5.43.2-beta.0",
36
- "@webiny/project-utils": "5.43.2-beta.0",
32
+ "@webiny/api-i18n": "6.0.0-alpha.0",
33
+ "@webiny/api-security": "6.0.0-alpha.0",
34
+ "@webiny/api-tenancy": "6.0.0-alpha.0",
35
+ "@webiny/api-wcp": "6.0.0-alpha.0",
36
+ "@webiny/project-utils": "6.0.0-alpha.0",
37
37
  "rimraf": "6.0.1",
38
38
  "type-fest": "4.14.0",
39
39
  "typescript": "5.3.3"
@@ -46,5 +46,5 @@
46
46
  "build": "node ../cli/bin.js run build",
47
47
  "watch": "node ../cli/bin.js run watch"
48
48
  },
49
- "gitHead": "ec6176f001f6350221d992981e110a0351addbaf"
49
+ "gitHead": "a5b28fed7a242d8f56712197a8ea83aa6d2ed101"
50
50
  }
@@ -12,7 +12,6 @@ var _ObjectUpdater = require("../utils/ObjectUpdater");
12
12
  /**
13
13
  * Package deep-equal does not have types.
14
14
  */
15
- // @ts-expect-error
16
15
 
17
16
  const getInput = (originalInput, input) => {
18
17
  if (typeof input === "function") {
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_deepEqual","_interopRequireDefault","_getObjectProperties","_ObjectUpdater","getInput","originalInput","input","TaskManagerStore","taskUpdater","ObjectUpdater","taskLogUpdater","constructor","params","context","task","taskLog","log","disableDatabaseLogs","getStatus","taskStatus","getTask","listChildTasks","definitionId","where","parentId","id","result","tasks","listTasks","sort","limit","items","updateTask","param","options","data","deepEqual","update","save","updateInput","updateOutput","values","output","getOutput","addInfoLog","message","type","TaskLogItemType","INFO","createdOn","Date","toISOString","addErrorLog","console","error","Error","getObjectProperties","ERROR","isDirty","fetch","updateLog","exports"],"sources":["TaskManagerStore.ts"],"sourcesContent":["import {\n IListTaskParamsWhere,\n ITask,\n ITaskDataInput,\n ITaskLog,\n TaskLogItemType,\n ITaskManagerStoreInfoLog,\n ITaskManagerStorePrivate,\n ITaskManagerStoreSetOutputOptions,\n ITaskManagerStoreUpdateTaskInputOptions,\n ITaskManagerStoreUpdateTaskOptions,\n ITaskResponseDoneResultOutput,\n ITasksContextObject,\n TaskDataStatus\n} from \"~/types\";\nimport {\n ITaskManagerStoreAddLogOptions,\n ITaskManagerStoreErrorLog,\n ITaskManagerStoreUpdateTaskInputParam,\n ITaskManagerStoreUpdateTaskParams\n} from \"./abstractions\";\n/**\n * Package deep-equal does not have types.\n */\n// @ts-expect-error\nimport deepEqual from \"deep-equal\";\nimport { getObjectProperties } from \"~/utils/getObjectProperties\";\nimport { ObjectUpdater } from \"~/utils/ObjectUpdater\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nconst getInput = <T extends ITaskDataInput = ITaskDataInput>(\n originalInput: T,\n input: ITaskManagerStoreUpdateTaskInputParam<T>\n): T => {\n if (typeof input === \"function\") {\n return input(originalInput);\n }\n return {\n ...originalInput,\n ...input\n };\n};\n\nexport interface TaskManagerStoreContext {\n tasks: Pick<ITasksContextObject, \"updateTask\" | \"updateLog\" | \"listTasks\">;\n}\n\nexport interface ITaskManagerStoreParams {\n context: TaskManagerStoreContext;\n task: ITask;\n log: ITaskLog;\n disableDatabaseLogs?: boolean;\n}\n\nexport class TaskManagerStore<\n T extends ITaskDataInput = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> implements ITaskManagerStorePrivate<T, O>\n{\n private readonly context: TaskManagerStoreContext;\n private task: ITask<T, O>;\n private taskLog: ITaskLog;\n private readonly disableDatabaseLogs: boolean;\n\n private readonly taskUpdater = new ObjectUpdater<ITask<T, O>>();\n private readonly taskLogUpdater = new ObjectUpdater<ITaskLog>();\n\n public constructor(params: ITaskManagerStoreParams) {\n this.context = params.context;\n this.task = params.task as ITask<T, O>;\n this.taskLog = params.log;\n this.disableDatabaseLogs = !!params.disableDatabaseLogs;\n }\n\n public getStatus(): TaskDataStatus {\n return this.task.taskStatus;\n }\n\n public getTask(): ITask<T, O> {\n return this.task as ITask<T, O>;\n }\n\n public async listChildTasks<\n I = GenericRecord,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(definitionId?: string): Promise<ITask<I, O>[]> {\n const where: IListTaskParamsWhere = {\n parentId: this.task.id\n };\n if (definitionId) {\n where.definitionId = definitionId;\n }\n const result = await this.context.tasks.listTasks<I, O>({\n where,\n sort: [\"createdOn_ASC\"],\n limit: 1000000\n });\n return result.items;\n }\n\n public async updateTask(\n param: ITaskManagerStoreUpdateTaskParams<T, O>,\n options?: ITaskManagerStoreUpdateTaskOptions\n ): Promise<void> {\n const data = typeof param === \"function\" ? param(this.task) : param;\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(data, this.task)) {\n return;\n }\n\n this.taskUpdater.update(data);\n\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async updateInput(\n param: ITaskManagerStoreUpdateTaskInputParam<T>,\n options?: ITaskManagerStoreUpdateTaskInputOptions\n ): Promise<void> {\n const input = getInput<T>(this.task.input, param);\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(input, this.task.input)) {\n return;\n }\n this.taskUpdater.update({\n input: input as T\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getInput(): T {\n return this.task.input as T;\n }\n\n public async updateOutput(\n values: Partial<O>,\n options: ITaskManagerStoreSetOutputOptions = {}\n ): Promise<void> {\n this.taskUpdater.update({\n output: values as O\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getOutput(): O {\n return this.task.output as O;\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addInfoLog(\n log: ITaskManagerStoreInfoLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (this.disableDatabaseLogs) {\n return;\n }\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n data: log.data,\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n\n await this.save();\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addErrorLog(\n log: ITaskManagerStoreErrorLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (this.disableDatabaseLogs) {\n return;\n }\n /**\n * Let's log the error to the console as well.\n */\n console.error(log.error);\n /**\n * Then update the log object.\n */\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n error: log.error instanceof Error ? getObjectProperties(log.error) : log.error,\n type: TaskLogItemType.ERROR,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async save(): Promise<void> {\n /**\n * Update both task and the log, if anything to update.\n */\n if (this.taskUpdater.isDirty()) {\n this.task = await this.context.tasks.updateTask<T, O>(\n this.task.id,\n this.taskUpdater.fetch()\n );\n }\n if (this.disableDatabaseLogs) {\n return;\n }\n if (this.taskLogUpdater.isDirty()) {\n this.taskLog = await this.context.tasks.updateLog(\n this.taskLog.id,\n this.taskLogUpdater.fetch()\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","_deepEqual","_interopRequireDefault","_getObjectProperties","_ObjectUpdater","getInput","originalInput","input","TaskManagerStore","taskUpdater","ObjectUpdater","taskLogUpdater","constructor","params","context","task","taskLog","log","disableDatabaseLogs","getStatus","taskStatus","getTask","listChildTasks","definitionId","where","parentId","id","result","tasks","listTasks","sort","limit","items","updateTask","param","options","data","deepEqual","update","save","updateInput","updateOutput","values","output","getOutput","addInfoLog","message","type","TaskLogItemType","INFO","createdOn","Date","toISOString","addErrorLog","console","error","Error","getObjectProperties","ERROR","isDirty","fetch","updateLog","exports"],"sources":["TaskManagerStore.ts"],"sourcesContent":["import {\n IListTaskParamsWhere,\n ITask,\n ITaskDataInput,\n ITaskLog,\n TaskLogItemType,\n ITaskManagerStoreInfoLog,\n ITaskManagerStorePrivate,\n ITaskManagerStoreSetOutputOptions,\n ITaskManagerStoreUpdateTaskInputOptions,\n ITaskManagerStoreUpdateTaskOptions,\n ITaskResponseDoneResultOutput,\n ITasksContextObject,\n TaskDataStatus\n} from \"~/types\";\nimport {\n ITaskManagerStoreAddLogOptions,\n ITaskManagerStoreErrorLog,\n ITaskManagerStoreUpdateTaskInputParam,\n ITaskManagerStoreUpdateTaskParams\n} from \"./abstractions\";\n/**\n * Package deep-equal does not have types.\n */\nimport deepEqual from \"deep-equal\";\nimport { getObjectProperties } from \"~/utils/getObjectProperties\";\nimport { ObjectUpdater } from \"~/utils/ObjectUpdater\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nconst getInput = <T extends ITaskDataInput = ITaskDataInput>(\n originalInput: T,\n input: ITaskManagerStoreUpdateTaskInputParam<T>\n): T => {\n if (typeof input === \"function\") {\n return input(originalInput);\n }\n return {\n ...originalInput,\n ...input\n };\n};\n\nexport interface TaskManagerStoreContext {\n tasks: Pick<ITasksContextObject, \"updateTask\" | \"updateLog\" | \"listTasks\">;\n}\n\nexport interface ITaskManagerStoreParams {\n context: TaskManagerStoreContext;\n task: ITask;\n log: ITaskLog;\n disableDatabaseLogs?: boolean;\n}\n\nexport class TaskManagerStore<\n T extends ITaskDataInput = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n> implements ITaskManagerStorePrivate<T, O>\n{\n private readonly context: TaskManagerStoreContext;\n private task: ITask<T, O>;\n private taskLog: ITaskLog;\n private readonly disableDatabaseLogs: boolean;\n\n private readonly taskUpdater = new ObjectUpdater<ITask<T, O>>();\n private readonly taskLogUpdater = new ObjectUpdater<ITaskLog>();\n\n public constructor(params: ITaskManagerStoreParams) {\n this.context = params.context;\n this.task = params.task as ITask<T, O>;\n this.taskLog = params.log;\n this.disableDatabaseLogs = !!params.disableDatabaseLogs;\n }\n\n public getStatus(): TaskDataStatus {\n return this.task.taskStatus;\n }\n\n public getTask(): ITask<T, O> {\n return this.task as ITask<T, O>;\n }\n\n public async listChildTasks<\n I = GenericRecord,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(definitionId?: string): Promise<ITask<I, O>[]> {\n const where: IListTaskParamsWhere = {\n parentId: this.task.id\n };\n if (definitionId) {\n where.definitionId = definitionId;\n }\n const result = await this.context.tasks.listTasks<I, O>({\n where,\n sort: [\"createdOn_ASC\"],\n limit: 1000000\n });\n return result.items;\n }\n\n public async updateTask(\n param: ITaskManagerStoreUpdateTaskParams<T, O>,\n options?: ITaskManagerStoreUpdateTaskOptions\n ): Promise<void> {\n const data = typeof param === \"function\" ? param(this.task) : param;\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(data, this.task)) {\n return;\n }\n\n this.taskUpdater.update(data);\n\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async updateInput(\n param: ITaskManagerStoreUpdateTaskInputParam<T>,\n options?: ITaskManagerStoreUpdateTaskInputOptions\n ): Promise<void> {\n const input = getInput<T>(this.task.input, param);\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(input, this.task.input)) {\n return;\n }\n this.taskUpdater.update({\n input: input as T\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getInput(): T {\n return this.task.input as T;\n }\n\n public async updateOutput(\n values: Partial<O>,\n options: ITaskManagerStoreSetOutputOptions = {}\n ): Promise<void> {\n this.taskUpdater.update({\n output: values as O\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getOutput(): O {\n return this.task.output as O;\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addInfoLog(\n log: ITaskManagerStoreInfoLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (this.disableDatabaseLogs) {\n return;\n }\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n data: log.data,\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n\n await this.save();\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addErrorLog(\n log: ITaskManagerStoreErrorLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (this.disableDatabaseLogs) {\n return;\n }\n /**\n * Let's log the error to the console as well.\n */\n console.error(log.error);\n /**\n * Then update the log object.\n */\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n error: log.error instanceof Error ? getObjectProperties(log.error) : log.error,\n type: TaskLogItemType.ERROR,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async save(): Promise<void> {\n /**\n * Update both task and the log, if anything to update.\n */\n if (this.taskUpdater.isDirty()) {\n this.task = await this.context.tasks.updateTask<T, O>(\n this.task.id,\n this.taskUpdater.fetch()\n );\n }\n if (this.disableDatabaseLogs) {\n return;\n }\n if (this.taskLogUpdater.isDirty()) {\n this.taskLog = await this.context.tasks.updateLog(\n this.taskLog.id,\n this.taskLogUpdater.fetch()\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- export declare const convertDateToString: <T>(input: T) => T;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.convertDateToString = void 0;
7
- const convertDateToString = input => {
8
- if (input instanceof Date) {
9
- return input.toISOString();
10
- }
11
- if (Array.isArray(input)) {
12
- return input.map(item => convertDateToString(item));
13
- }
14
- if (input !== null && typeof input === "object") {
15
- const output = {};
16
- for (const key in input) {
17
- const value = input[key];
18
- output[key] = convertDateToString(value);
19
- }
20
- return output;
21
- }
22
- return input;
23
- };
24
- exports.convertDateToString = convertDateToString;
25
-
26
- //# sourceMappingURL=convertDateToString.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["convertDateToString","input","Date","toISOString","Array","isArray","map","item","output","key","value","exports"],"sources":["convertDateToString.ts"],"sourcesContent":["export const convertDateToString = <T>(input: T): T => {\n if (input instanceof Date) {\n return input.toISOString() as unknown as T;\n }\n\n if (Array.isArray(input)) {\n return input.map(item => convertDateToString(item)) as unknown as T;\n }\n\n if (input !== null && typeof input === \"object\") {\n const output: Record<string, unknown> = {};\n for (const key in input) {\n const value = input[key];\n output[key] = convertDateToString(value);\n }\n return output as T;\n }\n\n return input;\n};\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAOC,KAAQ,IAAQ;EACnD,IAAIA,KAAK,YAAYC,IAAI,EAAE;IACvB,OAAOD,KAAK,CAACE,WAAW,CAAC,CAAC;EAC9B;EAEA,IAAIC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACtB,OAAOA,KAAK,CAACK,GAAG,CAACC,IAAI,IAAIP,mBAAmB,CAACO,IAAI,CAAC,CAAC;EACvD;EAEA,IAAIN,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7C,MAAMO,MAA+B,GAAG,CAAC,CAAC;IAC1C,KAAK,MAAMC,GAAG,IAAIR,KAAK,EAAE;MACrB,MAAMS,KAAK,GAAGT,KAAK,CAACQ,GAAG,CAAC;MACxBD,MAAM,CAACC,GAAG,CAAC,GAAGT,mBAAmB,CAACU,KAAK,CAAC;IAC5C;IACA,OAAOF,MAAM;EACjB;EAEA,OAAOP,KAAK;AAChB,CAAC;AAACU,OAAA,CAAAX,mBAAA,GAAAA,mBAAA","ignoreList":[]}