@webiny/tasks 6.3.0 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/context.js +31 -43
  2. package/context.js.map +1 -1
  3. package/crud/TaskLogPrivateModel.js +33 -27
  4. package/crud/TaskLogPrivateModel.js.map +1 -1
  5. package/crud/TaskPrivateModel.js +48 -39
  6. package/crud/TaskPrivateModel.js.map +1 -1
  7. package/crud/cleanupTaskSubtree.js +55 -69
  8. package/crud/cleanupTaskSubtree.js.map +1 -1
  9. package/crud/crud.tasks.js +289 -352
  10. package/crud/crud.tasks.js.map +1 -1
  11. package/crud/definition.tasks.js +13 -16
  12. package/crud/definition.tasks.js.map +1 -1
  13. package/crud/service.tasks.js +119 -155
  14. package/crud/service.tasks.js.map +1 -1
  15. package/decorators/RunnableTaskDecorator.js +61 -77
  16. package/decorators/RunnableTaskDecorator.js.map +1 -1
  17. package/decorators/SelfCleaningTaskDecorator.js +75 -89
  18. package/decorators/SelfCleaningTaskDecorator.js.map +1 -1
  19. package/domain/errors.js +35 -39
  20. package/domain/errors.js.map +1 -1
  21. package/events/TaskAfterCreateEvent.js +8 -5
  22. package/events/TaskAfterCreateEvent.js.map +1 -1
  23. package/events/TaskAfterDeleteEvent.js +8 -5
  24. package/events/TaskAfterDeleteEvent.js.map +1 -1
  25. package/events/TaskAfterUpdateEvent.js +8 -5
  26. package/events/TaskAfterUpdateEvent.js.map +1 -1
  27. package/events/TaskBeforeCreateEvent.js +8 -5
  28. package/events/TaskBeforeCreateEvent.js.map +1 -1
  29. package/events/TaskBeforeDeleteEvent.js +8 -5
  30. package/events/TaskBeforeDeleteEvent.js.map +1 -1
  31. package/events/TaskBeforeUpdateEvent.js +8 -5
  32. package/events/TaskBeforeUpdateEvent.js.map +1 -1
  33. package/events/abstractions.js +7 -36
  34. package/events/abstractions.js.map +1 -1
  35. package/events/index.js +0 -2
  36. package/features/AbortTask/AbortTaskUseCase.js +9 -8
  37. package/features/AbortTask/AbortTaskUseCase.js.map +1 -1
  38. package/features/AbortTask/abstractions.js +2 -1
  39. package/features/AbortTask/abstractions.js.map +1 -1
  40. package/features/AbortTask/feature.js +6 -5
  41. package/features/AbortTask/feature.js.map +1 -1
  42. package/features/AbortTask/index.js +0 -2
  43. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +8 -7
  44. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -1
  45. package/features/CleanupTaskSubtree/abstractions.js +2 -1
  46. package/features/CleanupTaskSubtree/abstractions.js.map +1 -1
  47. package/features/CleanupTaskSubtree/index.js +0 -2
  48. package/features/GetTask/GetTaskUseCase.js +8 -7
  49. package/features/GetTask/GetTaskUseCase.js.map +1 -1
  50. package/features/GetTask/abstractions.js +2 -1
  51. package/features/GetTask/abstractions.js.map +1 -1
  52. package/features/GetTask/feature.js +6 -5
  53. package/features/GetTask/feature.js.map +1 -1
  54. package/features/GetTask/index.js +0 -2
  55. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +18 -16
  56. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -1
  57. package/features/GetTaskDefinition/abstractions.js +2 -1
  58. package/features/GetTaskDefinition/abstractions.js.map +1 -1
  59. package/features/GetTaskDefinition/feature.js +6 -5
  60. package/features/GetTaskDefinition/feature.js.map +1 -1
  61. package/features/GetTaskDefinition/index.js +0 -2
  62. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -12
  63. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -1
  64. package/features/ListTaskDefinitions/abstractions.js +2 -1
  65. package/features/ListTaskDefinitions/abstractions.js.map +1 -1
  66. package/features/ListTaskDefinitions/feature.js +6 -5
  67. package/features/ListTaskDefinitions/feature.js.map +1 -1
  68. package/features/ListTaskDefinitions/index.js +0 -2
  69. package/features/ListTasks/ListTasksUseCase.js +8 -7
  70. package/features/ListTasks/ListTasksUseCase.js.map +1 -1
  71. package/features/ListTasks/abstractions.js +2 -1
  72. package/features/ListTasks/abstractions.js.map +1 -1
  73. package/features/ListTasks/feature.js +6 -5
  74. package/features/ListTasks/feature.js.map +1 -1
  75. package/features/ListTasks/index.js +0 -2
  76. package/features/TaskController/TaskController.js +60 -60
  77. package/features/TaskController/TaskController.js.map +1 -1
  78. package/features/TaskController/augmentation.js +0 -3
  79. package/features/TaskController/index.js +0 -5
  80. package/features/TaskExecutionContext/TaskExecutionContext.js +38 -45
  81. package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -1
  82. package/features/TaskExecutionContext/abstractions.js +2 -10
  83. package/features/TaskExecutionContext/abstractions.js.map +1 -1
  84. package/features/TaskExecutionContext/feature.js +6 -5
  85. package/features/TaskExecutionContext/feature.js.map +1 -1
  86. package/features/TaskExecutionContext/index.js +0 -2
  87. package/features/TriggerTask/TriggerTaskUseCase.js +9 -8
  88. package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -1
  89. package/features/TriggerTask/abstractions.js +2 -1
  90. package/features/TriggerTask/abstractions.js.map +1 -1
  91. package/features/TriggerTask/feature.js +6 -5
  92. package/features/TriggerTask/feature.js.map +1 -1
  93. package/features/TriggerTask/index.js +0 -2
  94. package/global.js +0 -2
  95. package/graphql/checkPermissions.js +16 -35
  96. package/graphql/checkPermissions.js.map +1 -1
  97. package/graphql/index.js +154 -187
  98. package/graphql/index.js.map +1 -1
  99. package/graphql/utils.js +15 -14
  100. package/graphql/utils.js.map +1 -1
  101. package/handler/index.js +46 -53
  102. package/handler/index.js.map +1 -1
  103. package/handler/register.js +7 -15
  104. package/handler/register.js.map +1 -1
  105. package/handler/types.js +0 -3
  106. package/index.js +2 -4
  107. package/package.json +17 -17
  108. package/plugins/TaskServicePlugin.js +9 -6
  109. package/plugins/TaskServicePlugin.js.map +1 -1
  110. package/plugins/index.js +0 -2
  111. package/response/DatabaseResponse.js +113 -132
  112. package/response/DatabaseResponse.js.map +1 -1
  113. package/response/Response.js +78 -96
  114. package/response/Response.js.map +1 -1
  115. package/response/ResponseAbortedResult.js +8 -7
  116. package/response/ResponseAbortedResult.js.map +1 -1
  117. package/response/ResponseContinueResult.js +12 -14
  118. package/response/ResponseContinueResult.js.map +1 -1
  119. package/response/ResponseDoneResult.js +10 -9
  120. package/response/ResponseDoneResult.js.map +1 -1
  121. package/response/ResponseErrorResult.js +9 -8
  122. package/response/ResponseErrorResult.js.map +1 -1
  123. package/response/TaskResponse.js +44 -64
  124. package/response/TaskResponse.js.map +1 -1
  125. package/response/abstractions/Response.js +0 -3
  126. package/response/abstractions/ResponseAbortedResult.js +0 -3
  127. package/response/abstractions/ResponseBaseResult.js +0 -3
  128. package/response/abstractions/ResponseContinueResult.js +0 -3
  129. package/response/abstractions/ResponseDoneResult.js +0 -3
  130. package/response/abstractions/ResponseErrorResult.js +0 -3
  131. package/response/abstractions/TaskResponse.js +0 -3
  132. package/response/abstractions/index.js +0 -2
  133. package/response/index.js +0 -2
  134. package/runner/TaskControl.js +150 -221
  135. package/runner/TaskControl.js.map +1 -1
  136. package/runner/TaskEventValidation.js +12 -13
  137. package/runner/TaskEventValidation.js.map +1 -1
  138. package/runner/TaskManager.js +68 -106
  139. package/runner/TaskManager.js.map +1 -1
  140. package/runner/TaskManagerStore.js +90 -139
  141. package/runner/TaskManagerStore.js.map +1 -1
  142. package/runner/TaskRunner.js +45 -65
  143. package/runner/TaskRunner.js.map +1 -1
  144. package/runner/abstractions/TaskControl.js +0 -3
  145. package/runner/abstractions/TaskEventValidation.js +0 -3
  146. package/runner/abstractions/TaskManager.js +0 -3
  147. package/runner/abstractions/TaskManagerStore.js +0 -3
  148. package/runner/abstractions/TaskRunner.js +0 -3
  149. package/runner/abstractions/index.js +0 -2
  150. package/runner/index.js +0 -2
  151. package/service/EventBridgeEventTransportPlugin.js +43 -42
  152. package/service/EventBridgeEventTransportPlugin.js.map +1 -1
  153. package/service/StepFunctionServicePlugin.js +65 -66
  154. package/service/StepFunctionServicePlugin.js.map +1 -1
  155. package/service/createService.js +10 -13
  156. package/service/createService.js.map +1 -1
  157. package/service/index.js +7 -5
  158. package/service/index.js.map +1 -1
  159. package/tasks/testingRunTask.js +11 -10
  160. package/tasks/testingRunTask.js.map +1 -1
  161. package/types.js +12 -12
  162. package/types.js.map +1 -1
  163. package/utils/ObjectUpdater.js +25 -31
  164. package/utils/ObjectUpdater.js.map +1 -1
  165. package/utils/getErrorProperties.js +5 -4
  166. package/utils/getErrorProperties.js.map +1 -1
  167. package/utils/getObjectProperties.js +8 -15
  168. package/utils/getObjectProperties.js.map +1 -1
  169. package/utils/index.js +0 -2
  170. package/utils/normalizeSelfCleanup.js +13 -12
  171. package/utils/normalizeSelfCleanup.js.map +1 -1
  172. package/events/index.js.map +0 -1
  173. package/features/AbortTask/index.js.map +0 -1
  174. package/features/CleanupTaskSubtree/index.js.map +0 -1
  175. package/features/GetTask/index.js.map +0 -1
  176. package/features/GetTaskDefinition/index.js.map +0 -1
  177. package/features/ListTaskDefinitions/index.js.map +0 -1
  178. package/features/ListTasks/index.js.map +0 -1
  179. package/features/TaskController/augmentation.js.map +0 -1
  180. package/features/TaskController/index.js.map +0 -1
  181. package/features/TaskExecutionContext/index.js.map +0 -1
  182. package/features/TriggerTask/index.js.map +0 -1
  183. package/global.js.map +0 -1
  184. package/handler/types.js.map +0 -1
  185. package/index.js.map +0 -1
  186. package/plugins/index.js.map +0 -1
  187. package/response/abstractions/Response.js.map +0 -1
  188. package/response/abstractions/ResponseAbortedResult.js.map +0 -1
  189. package/response/abstractions/ResponseBaseResult.js.map +0 -1
  190. package/response/abstractions/ResponseContinueResult.js.map +0 -1
  191. package/response/abstractions/ResponseDoneResult.js.map +0 -1
  192. package/response/abstractions/ResponseErrorResult.js.map +0 -1
  193. package/response/abstractions/TaskResponse.js.map +0 -1
  194. package/response/abstractions/index.js.map +0 -1
  195. package/response/index.js.map +0 -1
  196. package/runner/abstractions/TaskControl.js.map +0 -1
  197. package/runner/abstractions/TaskEventValidation.js.map +0 -1
  198. package/runner/abstractions/TaskManager.js.map +0 -1
  199. package/runner/abstractions/TaskManagerStore.js.map +0 -1
  200. package/runner/abstractions/TaskRunner.js.map +0 -1
  201. package/runner/abstractions/index.js.map +0 -1
  202. package/runner/index.js.map +0 -1
  203. package/utils/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createHandler","createBaseHandler","registerDefaultPlugins","execute","TaskRunner","timerFactory","TaskEventValidation","TaskResultStatus","url","params","event","context","app","options","logger","debug","webiny","addHook","_","__","payload","body","register","taskApp","setErrorHandler","error","reply","__webiny_raw_result","message","code","data","status","ERROR","send","post","handler","run","headers","tenant","endpoint"],"sources":["index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types.js\";\nimport { TaskRunner } from \"~/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"mappings":"AAAA,SAASA,aAAa,IAAIC,iBAAiB,QAAQ,iBAAiB;AACpE,SAASC,sBAAsB,QAAQ,sCAAsC;AAC7E,SAASC,OAAO,QAAQ,gCAAgC;AAOxD,SAASC,UAAU;AAEnB,SAASC,YAAY,QAAQ,oCAAoC;AACjE,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB,QAAQ,wDAAwD;AAMzF,MAAMC,GAAG,GAAG,+BAA+B;AAE3C,OAAO,MAAMR,aAAa,GAAIS,MAAqB,IAAsB;EACrE,OAAO,OAAOC,KAAK,EAAEC,OAAO,KAAK;IAC7B,MAAMC,GAAG,GAAGX,iBAAiB,CAAC;MAC1B,GAAGQ,MAAM;MACTI,OAAO,EAAE;QACLC,MAAM,EAAEL,MAAM,CAACM,KAAK,KAAK,IAAI;QAC7B,IAAIN,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;MAC5B;IACJ,CAAC,CAAC;IAEFX,sBAAsB,CAACU,GAAG,CAACI,MAAM,CAAC;IAElCJ,GAAG,CAACK,OAAO,CAAC,kBAAkB,EAAE,OAAOC,CAAC,EAAEC,EAAE,EAAEC,OAA4B,KAAK;MAC3E,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;QACf,OAAOD,OAAO;MAClB;MACA,OAAOA,OAAO,CAACC,IAAI;IACvB,CAAC,CAAC;IAEF,MAAMT,GAAG,CAACU,QAAQ,CAAC,MAAMC,OAAO,IAAI;MAChCA,OAAO,CAACC,eAAe,CAAc,OAAOC,KAAK,EAAEP,CAAC,EAAEQ,KAAK,KAAK;QAC5Dd,GAAG,CAACe,mBAAmB,GAAG;UACtBF,KAAK,EAAE;YACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;YACtBC,IAAI,EAAEJ,KAAK,CAACI,IAAI;YAChBC,IAAI,EAAEL,KAAK,CAACK;UAChB,CAAC;UACDC,MAAM,EAAExB,gBAAgB,CAACyB;QAC7B,CAAC;QACD,OAAON,KAAK,CAACO,IAAI,CAAC,CAAC;MACvB,CAAC,CAAC;MAEFV,OAAO,CAACW,IAAI,CAAC1B,GAAG,EAAE,OAAOU,CAAC,EAAEQ,KAAK,KAAK;QAClC,MAAMS,OAAO,GAAG,IAAI/B,UAAU;QAC1B;AACpB;AACA;QACoBQ,GAAG,CAACI,MAAM,EACVX,YAAY,CAACM,OAAO,CAAC,EACrB,IAAIL,mBAAmB,CAAC,CAC5B,CAAC;QAEDM,GAAG,CAACe,mBAAmB,GAAG,MAAMQ,OAAO,CAACC,GAAG,CAAC1B,KAAK,CAAC;QAClD,OAAOgB,KAAK,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC;MACzB,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO9B,OAAO,CAAC;MACXS,GAAG;MACHJ,GAAG;MACHY,OAAO,EAAE;QACL,GAAGV,KAAK;QACR2B,OAAO,EAAE;UACL,CAAC,UAAU,GAAG3B,KAAK,CAAC4B,MAAM;UAC1B,CAAC,uBAAuB,GAAG5B,KAAK,CAAC6B,QAAQ;UACzC,CAAC,iBAAiB,GAAG;QACzB;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"handler/index.js","sources":["../../src/handler/index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types.js\";\nimport { TaskRunner } from \"~/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"names":["url","createHandler","params","event","context","app","createBaseHandler","registerDefaultPlugins","_","__","payload","taskApp","error","reply","TaskResultStatus","handler","TaskRunner","timerFactory","TaskEventValidation","execute"],"mappings":";;;;;;;AAmBA,MAAMA,MAAM;AAEL,MAAMC,wBAAgB,CAACC,SACnB,OAAOC,OAAOC;QACjB,MAAMC,MAAMC,cAAkB;YAC1B,GAAGJ,MAAM;YACT,SAAS;gBACL,QAAQA,AAAiB,SAAjBA,OAAO,KAAK;gBACpB,GAAIA,OAAO,OAAO,IAAI,CAAC,CAAC;YAC5B;QACJ;QAEAK,uBAAuBF,IAAI,MAAM;QAEjCA,IAAI,OAAO,CAAC,oBAAoB,OAAOG,GAAGC,IAAIC;YAC1C,IAAI,CAACA,QAAQ,IAAI,EACb,OAAOA;YAEX,OAAOA,QAAQ,IAAI;QACvB;QAEA,MAAML,IAAI,QAAQ,CAAC,OAAMM;YACrBA,QAAQ,eAAe,CAAc,OAAOC,OAAOJ,GAAGK;gBAClDR,IAAI,mBAAmB,GAAG;oBACtB,OAAO;wBACH,SAASO,MAAM,OAAO;wBACtB,MAAMA,MAAM,IAAI;wBAChB,MAAMA,MAAM,IAAI;oBACpB;oBACA,QAAQE,iBAAiB,KAAK;gBAClC;gBACA,OAAOD,MAAM,IAAI;YACrB;YAEAF,QAAQ,IAAI,CAACX,KAAK,OAAOQ,GAAGK;gBACxB,MAAME,UAAU,IAAIC,WAIhBX,IAAI,MAAM,EACVY,aAAab,UACb,IAAIc;gBAGRb,IAAI,mBAAmB,GAAG,MAAMU,QAAQ,GAAG,CAACZ;gBAC5C,OAAOU,MAAM,IAAI,CAAC,CAAC;YACvB;QACJ;QAEA,OAAOM,QAAQ;YACXd;YACAL,KAAAA;YACA,SAAS;gBACL,GAAGG,KAAK;gBACR,SAAS;oBACL,CAAC,WAAW,EAAEA,MAAM,MAAM;oBAC1B,CAAC,wBAAwB,EAAEA,MAAM,QAAQ;oBACzC,CAAC,kBAAkB,EAAE;gBACzB;YACJ;QACJ;IACJ"}
@@ -1,23 +1,15 @@
1
1
  import { registry } from "@webiny/handler-aws/registry.js";
2
2
  import { createSourceHandler } from "@webiny/handler-aws";
3
3
  const handler = createSourceHandler({
4
- name: "handler-webiny-background-task",
5
- canUse: event => {
6
- return !!event.payload?.webinyTaskId;
7
- },
8
- handle: async ({
9
- params,
10
- event,
11
- context
12
- }) => {
13
- const {
14
- createHandler
15
- } = await import(/* webpackChunkName: "tasks.handler.createHandler" */"./index.js");
16
- return createHandler(params)(event.payload, context);
17
- }
4
+ name: "handler-webiny-background-task",
5
+ canUse: (event)=>!!event.payload?.webinyTaskId,
6
+ handle: async ({ params, event, context })=>{
7
+ const { createHandler } = await import("./index.js");
8
+ return createHandler(params)(event.payload, context);
9
+ }
18
10
  });
19
11
  registry.register(handler, {
20
- silent: true
12
+ silent: true
21
13
  });
22
14
 
23
15
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["registry","createSourceHandler","handler","name","canUse","event","payload","webinyTaskId","handle","params","context","createHandler","register","silent"],"sources":["register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry.js\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, IIncomingEvent, ITaskEvent } from \"./types.js\";\n\nconst handler = createSourceHandler<IIncomingEvent<ITaskEvent>, HandlerParams>({\n name: \"handler-webiny-background-task\",\n canUse: event => {\n return !!event.payload?.webinyTaskId;\n },\n handle: async ({ params, event, context }) => {\n const { createHandler } = await import(\n /* webpackChunkName: \"tasks.handler.createHandler\" */\n \"./index.js\"\n );\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler, {\n silent: true\n});\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,iCAAiC;AAC1D,SAASC,mBAAmB,QAAQ,qBAAqB;AAGzD,MAAMC,OAAO,GAAGD,mBAAmB,CAA4C;EAC3EE,IAAI,EAAE,gCAAgC;EACtCC,MAAM,EAAEC,KAAK,IAAI;IACb,OAAO,CAAC,CAACA,KAAK,CAACC,OAAO,EAAEC,YAAY;EACxC,CAAC;EACDC,MAAM,EAAE,MAAAA,CAAO;IAAEC,MAAM;IAAEJ,KAAK;IAAEK;EAAQ,CAAC,KAAK;IAC1C,MAAM;MAAEC;IAAc,CAAC,GAAG,MAAM,MAAM,CAClC,iEAEJ,CAAC;IACD,OAAOA,aAAa,CAACF,MAAM,CAAC,CAACJ,KAAK,CAACC,OAAO,EAAEI,OAAO,CAAC;EACxD;AACJ,CAAC,CAAC;AAEFV,QAAQ,CAACY,QAAQ,CAACV,OAAO,EAAE;EACvBW,MAAM,EAAE;AACZ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"handler/register.js","sources":["../../src/handler/register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry.js\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, IIncomingEvent, ITaskEvent } from \"./types.js\";\n\nconst handler = createSourceHandler<IIncomingEvent<ITaskEvent>, HandlerParams>({\n name: \"handler-webiny-background-task\",\n canUse: event => {\n return !!event.payload?.webinyTaskId;\n },\n handle: async ({ params, event, context }) => {\n const { createHandler } = await import(\n /* webpackChunkName: \"tasks.handler.createHandler\" */\n \"./index.js\"\n );\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler, {\n silent: true\n});\n"],"names":["handler","createSourceHandler","event","params","context","createHandler","registry"],"mappings":";;AAIA,MAAMA,UAAUC,oBAA+D;IAC3E,MAAM;IACN,QAAQC,CAAAA,QACG,CAAC,CAACA,MAAM,OAAO,EAAE;IAE5B,QAAQ,OAAO,EAAEC,MAAM,EAAED,KAAK,EAAEE,OAAO,EAAE;QACrC,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAM,MAAM,CAAN;QAIhC,OAAOA,cAAcF,QAAQD,MAAM,OAAO,EAAEE;IAChD;AACJ;AAEAE,SAAS,QAAQ,CAACN,SAAS;IACvB,QAAQ;AACZ"}
package/handler/types.js CHANGED
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
package/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  import "./handler/register.js";
2
- export { createBackgroundTaskGraphQL } from "./graphql/index.js";
3
- export { createBackgroundTaskContext } from "./context.js";
4
2
  export * from "./response/index.js";
5
3
  export * from "./types.js";
6
-
7
- //# sourceMappingURL=index.js.map
4
+ export { createBackgroundTaskGraphQL } from "./graphql/index.js";
5
+ export { createBackgroundTaskContext } from "./context.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/tasks",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -16,34 +16,34 @@
16
16
  ],
17
17
  "license": "MIT",
18
18
  "dependencies": {
19
- "@webiny/api": "6.3.0",
20
- "@webiny/api-core": "6.3.0",
21
- "@webiny/api-headless-cms": "6.3.0",
22
- "@webiny/aws-sdk": "6.3.0",
23
- "@webiny/error": "6.3.0",
24
- "@webiny/feature": "6.3.0",
25
- "@webiny/handler": "6.3.0",
26
- "@webiny/handler-aws": "6.3.0",
27
- "@webiny/handler-graphql": "6.3.0",
28
- "@webiny/plugins": "6.3.0",
29
- "@webiny/utils": "6.3.0",
19
+ "@webiny/api": "6.4.0-beta.0",
20
+ "@webiny/api-core": "6.4.0-beta.0",
21
+ "@webiny/api-headless-cms": "6.4.0-beta.0",
22
+ "@webiny/aws-sdk": "6.4.0-beta.0",
23
+ "@webiny/error": "6.4.0-beta.0",
24
+ "@webiny/feature": "6.4.0-beta.0",
25
+ "@webiny/handler": "6.4.0-beta.0",
26
+ "@webiny/handler-aws": "6.4.0-beta.0",
27
+ "@webiny/handler-graphql": "6.4.0-beta.0",
28
+ "@webiny/plugins": "6.4.0-beta.0",
29
+ "@webiny/utils": "6.4.0-beta.0",
30
30
  "deep-equal": "2.2.3",
31
31
  "lodash": "4.18.1",
32
32
  "object-merge-advanced": "14.1.3",
33
33
  "object-sizeof": "2.6.5",
34
- "zod": "4.3.6"
34
+ "zod": "4.4.3"
35
35
  },
36
36
  "devDependencies": {
37
- "@webiny/build-tools": "6.3.0",
38
- "@webiny/project-utils": "6.3.0",
37
+ "@webiny/build-tools": "6.4.0-beta.0",
38
+ "@webiny/project-utils": "6.4.0-beta.0",
39
39
  "rimraf": "6.1.3",
40
40
  "type-fest": "5.6.0",
41
41
  "typescript": "6.0.3",
42
- "vitest": "4.1.5"
42
+ "vitest": "4.1.6"
43
43
  },
44
44
  "publishConfig": {
45
45
  "access": "public",
46
46
  "directory": "dist"
47
47
  },
48
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
48
+ "gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
49
49
  }
@@ -1,10 +1,13 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- export class TaskServicePlugin extends Plugin {
3
- static type = "tasks.taskService";
4
- constructor(params) {
5
- super();
6
- this.default = !!params?.default;
7
- }
2
+ class TaskServicePlugin extends Plugin {
3
+ static{
4
+ this.type = "tasks.taskService";
5
+ }
6
+ constructor(params){
7
+ super();
8
+ this.default = !!params?.default;
9
+ }
8
10
  }
11
+ export { TaskServicePlugin };
9
12
 
10
13
  //# sourceMappingURL=TaskServicePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Plugin","TaskServicePlugin","type","constructor","params","default"],"sources":["TaskServicePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ITask } from \"~/types.js\";\n\nexport interface ITaskServiceCreatePluginParams {\n getTenant(): string;\n}\n\nexport type ITaskServiceTask = Pick<ITask, \"id\" | \"definitionId\">;\n\nexport interface ITaskService {\n send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;\n fetch(task: ITask): Promise<unknown | null>;\n}\n\nexport interface ITaskServicePluginParams {\n default?: boolean;\n}\n\nexport abstract class TaskServicePlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskService\";\n public readonly default: boolean;\n\n public constructor(params?: ITaskServicePluginParams) {\n super();\n this.default = !!params?.default;\n }\n\n public abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAkBxC,OAAO,MAAeC,iBAAiB,SAASD,MAAM,CAAC;EACnD,OAAgCE,IAAI,GAAW,mBAAmB;EAG3DC,WAAWA,CAACC,MAAiC,EAAE;IAClD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAG,CAAC,CAACD,MAAM,EAAEC,OAAO;EACpC;AAGJ","ignoreList":[]}
1
+ {"version":3,"file":"plugins/TaskServicePlugin.js","sources":["../../src/plugins/TaskServicePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ITask } from \"~/types.js\";\n\nexport interface ITaskServiceCreatePluginParams {\n getTenant(): string;\n}\n\nexport type ITaskServiceTask = Pick<ITask, \"id\" | \"definitionId\">;\n\nexport interface ITaskService {\n send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;\n fetch(task: ITask): Promise<unknown | null>;\n}\n\nexport interface ITaskServicePluginParams {\n default?: boolean;\n}\n\nexport abstract class TaskServicePlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskService\";\n public readonly default: boolean;\n\n public constructor(params?: ITaskServicePluginParams) {\n super();\n this.default = !!params?.default;\n }\n\n public abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;\n}\n"],"names":["TaskServicePlugin","Plugin","params"],"mappings":";AAkBO,MAAeA,0BAA0BC;;aACZ,IAAI,GAAW;;IAG/C,YAAmBC,MAAiC,CAAE;QAClD,KAAK;QACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAACA,QAAQ;IAC7B;AAGJ"}
package/plugins/index.js CHANGED
@@ -1,3 +1 @@
1
1
  export * from "./TaskServicePlugin.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -2,145 +2,126 @@ import { TaskDataStatus } from "../types.js";
2
2
  import { NotFoundError } from "@webiny/handler-graphql";
3
3
  import { getErrorProperties } from "../utils/getErrorProperties.js";
4
4
  import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
- export class DatabaseResponse {
6
- constructor(response, store) {
7
- this.response = response;
8
- this.store = store;
9
- }
10
- from(result) {
11
- switch (result.status) {
12
- case TaskResultStatus.DONE:
13
- return this.done(result);
14
- case TaskResultStatus.CONTINUE:
15
- return this.continue(result);
16
- case TaskResultStatus.ERROR:
17
- return this.error(result);
18
- case TaskResultStatus.ABORTED:
19
- return this.aborted();
5
+ class DatabaseResponse {
6
+ constructor(response, store){
7
+ this.response = response;
8
+ this.store = store;
20
9
  }
21
- }
22
- async done(params) {
23
- const {
24
- output,
25
- ...rest
26
- } = params;
27
- let message = params.message;
28
- try {
29
- await this.store.updateTask({
30
- taskStatus: TaskDataStatus.SUCCESS,
31
- finishedOn: new Date().toISOString(),
32
- output
33
- });
34
- await this.store.addInfoLog({
35
- message: message || "Task done."
36
- });
37
- await this.store.save();
38
- } catch (ex) {
39
- message = `Task done, but failed to update task log. (${ex.message || "unknown"})`;
40
- }
41
- /**
42
- * Default behavior is to return the done response.
43
- */
44
- return this.response.done({
45
- ...rest,
46
- message,
47
- output
48
- });
49
- }
50
- async aborted() {
51
- return this.response.aborted();
52
- }
53
- async continue(params) {
54
- try {
55
- const task = this.store.getTask();
56
- await this.store.updateTask({
57
- input: {
58
- ...task.input,
59
- ...params.input
60
- },
61
- taskStatus: TaskDataStatus.RUNNING
62
- });
63
- await this.store.addInfoLog({
64
- message: "Task continuing.",
65
- data: params.input
66
- });
67
- await this.store.save();
68
- } catch (ex) {
69
- /**
70
- * If task was not found, we just return the error.
71
- */
72
- if (ex instanceof NotFoundError) {
73
- return this.response.error({
74
- error: {
75
- message: ex.message || `Task not found.`,
76
- code: ex.code || "TASK_NOT_FOUND",
77
- data: {
78
- ...ex.data,
79
- input: this.store.getInput()
80
- }
81
- }
82
- });
83
- }
84
- /**
85
- * Otherwise, we store the error and return it...
86
- */
87
- return this.error({
88
- error: {
89
- message: `Failed to update task input: ${ex.message || "unknown error"}`,
90
- code: ex.code || "TASK_UPDATE_ERROR"
10
+ from(result) {
11
+ switch(result.status){
12
+ case TaskResultStatus.DONE:
13
+ return this.done(result);
14
+ case TaskResultStatus.CONTINUE:
15
+ return this.continue(result);
16
+ case TaskResultStatus.ERROR:
17
+ return this.error(result);
18
+ case TaskResultStatus.ABORTED:
19
+ return this.aborted();
91
20
  }
92
- });
93
21
  }
94
- /**
95
- * Default behavior is to return the continue response.
96
- */
97
- return this.response.continue(params);
98
- }
99
- async error(params) {
100
- const error = params.error instanceof Error ? getErrorProperties(params.error) : params.error;
101
- try {
102
- await this.store.updateTask({
103
- taskStatus: TaskDataStatus.FAILED,
104
- finishedOn: new Date().toISOString(),
105
- output: {
106
- error
22
+ async done(params) {
23
+ const { output, ...rest } = params;
24
+ let message = params.message;
25
+ try {
26
+ await this.store.updateTask({
27
+ taskStatus: TaskDataStatus.SUCCESS,
28
+ finishedOn: new Date().toISOString(),
29
+ output
30
+ });
31
+ await this.store.addInfoLog({
32
+ message: message || "Task done."
33
+ });
34
+ await this.store.save();
35
+ } catch (ex) {
36
+ message = `Task done, but failed to update task log. (${ex.message || "unknown"})`;
107
37
  }
108
- });
109
- await this.store.addErrorLog({
110
- message: params.error.message,
111
- data: this.store.getInput(),
112
- error
113
- });
114
- await this.store.save();
115
- } catch (ex) {
116
- return this.response.error({
117
- ...params,
118
- error: {
119
- ...error,
120
- message: ex.message || error.message,
121
- code: ex.code || error.code,
122
- data: {
123
- ...error.data,
124
- ...ex.data,
125
- input: this.store.getInput()
126
- }
38
+ return this.response.done({
39
+ ...rest,
40
+ message,
41
+ output
42
+ });
43
+ }
44
+ async aborted() {
45
+ return this.response.aborted();
46
+ }
47
+ async continue(params) {
48
+ try {
49
+ const task = this.store.getTask();
50
+ await this.store.updateTask({
51
+ input: {
52
+ ...task.input,
53
+ ...params.input
54
+ },
55
+ taskStatus: TaskDataStatus.RUNNING
56
+ });
57
+ await this.store.addInfoLog({
58
+ message: "Task continuing.",
59
+ data: params.input
60
+ });
61
+ await this.store.save();
62
+ } catch (ex) {
63
+ if (ex instanceof NotFoundError) return this.response.error({
64
+ error: {
65
+ message: ex.message || "Task not found.",
66
+ code: ex.code || "TASK_NOT_FOUND",
67
+ data: {
68
+ ...ex.data,
69
+ input: this.store.getInput()
70
+ }
71
+ }
72
+ });
73
+ return this.error({
74
+ error: {
75
+ message: `Failed to update task input: ${ex.message || "unknown error"}`,
76
+ code: ex.code || "TASK_UPDATE_ERROR"
77
+ }
78
+ });
127
79
  }
128
- });
80
+ return this.response.continue(params);
129
81
  }
130
- /**
131
- * Default behavior is to return the error response.
132
- */
133
- return this.response.error({
134
- ...params,
135
- error: {
136
- ...params.error,
137
- data: {
138
- ...error.data,
139
- input: this.store.getInput()
82
+ async error(params) {
83
+ const error = params.error instanceof Error ? getErrorProperties(params.error) : params.error;
84
+ try {
85
+ await this.store.updateTask({
86
+ taskStatus: TaskDataStatus.FAILED,
87
+ finishedOn: new Date().toISOString(),
88
+ output: {
89
+ error
90
+ }
91
+ });
92
+ await this.store.addErrorLog({
93
+ message: params.error.message,
94
+ data: this.store.getInput(),
95
+ error
96
+ });
97
+ await this.store.save();
98
+ } catch (ex) {
99
+ return this.response.error({
100
+ ...params,
101
+ error: {
102
+ ...error,
103
+ message: ex.message || error.message,
104
+ code: ex.code || error.code,
105
+ data: {
106
+ ...error.data,
107
+ ...ex.data,
108
+ input: this.store.getInput()
109
+ }
110
+ }
111
+ });
140
112
  }
141
- }
142
- });
143
- }
113
+ return this.response.error({
114
+ ...params,
115
+ error: {
116
+ ...params.error,
117
+ data: {
118
+ ...error.data,
119
+ input: this.store.getInput()
120
+ }
121
+ }
122
+ });
123
+ }
144
124
  }
125
+ export { DatabaseResponse };
145
126
 
146
127
  //# sourceMappingURL=DatabaseResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TaskDataStatus","NotFoundError","getErrorProperties","TaskResultStatus","DatabaseResponse","constructor","response","store","from","result","status","DONE","done","CONTINUE","continue","ERROR","error","ABORTED","aborted","params","output","rest","message","updateTask","taskStatus","SUCCESS","finishedOn","Date","toISOString","addInfoLog","save","ex","task","getTask","input","RUNNING","data","code","getInput","Error","FAILED","addErrorLog"],"sources":["DatabaseResponse.ts"],"sourcesContent":["import { TaskDataStatus } from \"~/types.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type {\n IResponse,\n IResponseAsync,\n IResponseContinueParams,\n IResponseContinueResult,\n IResponseDoneParams,\n IResponseDoneResult,\n IResponseErrorParams,\n IResponseErrorResult,\n IResponseResult\n} from \"./abstractions/index.js\";\nimport type { ITaskManagerStorePrivate } from \"~/runner/abstractions/index.js\";\nimport { getErrorProperties } from \"~/utils/getErrorProperties.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class DatabaseResponse implements IResponseAsync {\n public readonly response: IResponse;\n\n private readonly store: ITaskManagerStorePrivate;\n\n public constructor(response: IResponse, store: ITaskManagerStorePrivate) {\n this.response = response;\n this.store = store;\n }\n\n public from(result: IResponseResult): Promise<IResponseResult> {\n switch (result.status) {\n case TaskResultStatus.DONE:\n return this.done(result);\n case TaskResultStatus.CONTINUE:\n return this.continue(result);\n case TaskResultStatus.ERROR:\n return this.error(result);\n case TaskResultStatus.ABORTED:\n return this.aborted();\n }\n }\n\n public async done(params: IResponseDoneParams): Promise<IResponseDoneResult> {\n const { output, ...rest } = params;\n let message = params.message;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.SUCCESS,\n finishedOn: new Date().toISOString(),\n output\n });\n await this.store.addInfoLog({\n message: message || \"Task done.\"\n });\n await this.store.save();\n } catch (ex) {\n message = `Task done, but failed to update task log. (${ex.message || \"unknown\"})`;\n }\n /**\n * Default behavior is to return the done response.\n */\n return this.response.done({\n ...rest,\n message,\n output\n });\n }\n\n public async aborted() {\n return this.response.aborted();\n }\n\n public async continue(\n params: IResponseContinueParams\n ): Promise<IResponseContinueResult | IResponseErrorResult> {\n try {\n const task = this.store.getTask();\n await this.store.updateTask({\n input: {\n ...task.input,\n ...params.input\n },\n taskStatus: TaskDataStatus.RUNNING\n });\n await this.store.addInfoLog({\n message: \"Task continuing.\",\n data: params.input\n });\n await this.store.save();\n } catch (ex) {\n /**\n * If task was not found, we just return the error.\n */\n if (ex instanceof NotFoundError) {\n return this.response.error({\n error: {\n message: ex.message || `Task not found.`,\n code: ex.code || \"TASK_NOT_FOUND\",\n data: {\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Otherwise, we store the error and return it...\n */\n return this.error({\n error: {\n message: `Failed to update task input: ${ex.message || \"unknown error\"}`,\n code: ex.code || \"TASK_UPDATE_ERROR\"\n }\n });\n }\n /**\n * Default behavior is to return the continue response.\n */\n return this.response.continue(params);\n }\n\n public async error(params: IResponseErrorParams): Promise<IResponseErrorResult> {\n const error =\n params.error instanceof Error ? getErrorProperties(params.error) : params.error;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.FAILED,\n finishedOn: new Date().toISOString(),\n output: {\n error\n }\n });\n await this.store.addErrorLog({\n message: params.error.message,\n data: this.store.getInput(),\n error\n });\n await this.store.save();\n } catch (ex) {\n return this.response.error({\n ...params,\n error: {\n ...error,\n message: ex.message || error.message,\n code: ex.code || error.code,\n data: {\n ...error.data,\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Default behavior is to return the error response.\n */\n return this.response.error({\n ...params,\n error: {\n ...params.error,\n data: {\n ...error.data,\n input: this.store.getInput()\n }\n }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"response/DatabaseResponse.js","sources":["../../src/response/DatabaseResponse.ts"],"sourcesContent":["import { TaskDataStatus } from \"~/types.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type {\n IResponse,\n IResponseAsync,\n IResponseContinueParams,\n IResponseContinueResult,\n IResponseDoneParams,\n IResponseDoneResult,\n IResponseErrorParams,\n IResponseErrorResult,\n IResponseResult\n} from \"./abstractions/index.js\";\nimport type { ITaskManagerStorePrivate } from \"~/runner/abstractions/index.js\";\nimport { getErrorProperties } from \"~/utils/getErrorProperties.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class DatabaseResponse implements IResponseAsync {\n public readonly response: IResponse;\n\n private readonly store: ITaskManagerStorePrivate;\n\n public constructor(response: IResponse, store: ITaskManagerStorePrivate) {\n this.response = response;\n this.store = store;\n }\n\n public from(result: IResponseResult): Promise<IResponseResult> {\n switch (result.status) {\n case TaskResultStatus.DONE:\n return this.done(result);\n case TaskResultStatus.CONTINUE:\n return this.continue(result);\n case TaskResultStatus.ERROR:\n return this.error(result);\n case TaskResultStatus.ABORTED:\n return this.aborted();\n }\n }\n\n public async done(params: IResponseDoneParams): Promise<IResponseDoneResult> {\n const { output, ...rest } = params;\n let message = params.message;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.SUCCESS,\n finishedOn: new Date().toISOString(),\n output\n });\n await this.store.addInfoLog({\n message: message || \"Task done.\"\n });\n await this.store.save();\n } catch (ex) {\n message = `Task done, but failed to update task log. (${ex.message || \"unknown\"})`;\n }\n /**\n * Default behavior is to return the done response.\n */\n return this.response.done({\n ...rest,\n message,\n output\n });\n }\n\n public async aborted() {\n return this.response.aborted();\n }\n\n public async continue(\n params: IResponseContinueParams\n ): Promise<IResponseContinueResult | IResponseErrorResult> {\n try {\n const task = this.store.getTask();\n await this.store.updateTask({\n input: {\n ...task.input,\n ...params.input\n },\n taskStatus: TaskDataStatus.RUNNING\n });\n await this.store.addInfoLog({\n message: \"Task continuing.\",\n data: params.input\n });\n await this.store.save();\n } catch (ex) {\n /**\n * If task was not found, we just return the error.\n */\n if (ex instanceof NotFoundError) {\n return this.response.error({\n error: {\n message: ex.message || `Task not found.`,\n code: ex.code || \"TASK_NOT_FOUND\",\n data: {\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Otherwise, we store the error and return it...\n */\n return this.error({\n error: {\n message: `Failed to update task input: ${ex.message || \"unknown error\"}`,\n code: ex.code || \"TASK_UPDATE_ERROR\"\n }\n });\n }\n /**\n * Default behavior is to return the continue response.\n */\n return this.response.continue(params);\n }\n\n public async error(params: IResponseErrorParams): Promise<IResponseErrorResult> {\n const error =\n params.error instanceof Error ? getErrorProperties(params.error) : params.error;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.FAILED,\n finishedOn: new Date().toISOString(),\n output: {\n error\n }\n });\n await this.store.addErrorLog({\n message: params.error.message,\n data: this.store.getInput(),\n error\n });\n await this.store.save();\n } catch (ex) {\n return this.response.error({\n ...params,\n error: {\n ...error,\n message: ex.message || error.message,\n code: ex.code || error.code,\n data: {\n ...error.data,\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Default behavior is to return the error response.\n */\n return this.response.error({\n ...params,\n error: {\n ...params.error,\n data: {\n ...error.data,\n input: this.store.getInput()\n }\n }\n });\n }\n}\n"],"names":["DatabaseResponse","response","store","result","TaskResultStatus","params","output","rest","message","TaskDataStatus","Date","ex","task","NotFoundError","error","Error","getErrorProperties"],"mappings":";;;;AAiBO,MAAMA;IAKT,YAAmBC,QAAmB,EAAEC,KAA+B,CAAE;QACrE,IAAI,CAAC,QAAQ,GAAGD;QAChB,IAAI,CAAC,KAAK,GAAGC;IACjB;IAEO,KAAKC,MAAuB,EAA4B;QAC3D,OAAQA,OAAO,MAAM;YACjB,KAAKC,iBAAiB,IAAI;gBACtB,OAAO,IAAI,CAAC,IAAI,CAACD;YACrB,KAAKC,iBAAiB,QAAQ;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAACD;YACzB,KAAKC,iBAAiB,KAAK;gBACvB,OAAO,IAAI,CAAC,KAAK,CAACD;YACtB,KAAKC,iBAAiB,OAAO;gBACzB,OAAO,IAAI,CAAC,OAAO;QAC3B;IACJ;IAEA,MAAa,KAAKC,MAA2B,EAAgC;QACzE,MAAM,EAAEC,MAAM,EAAE,GAAGC,MAAM,GAAGF;QAC5B,IAAIG,UAAUH,OAAO,OAAO;QAC5B,IAAI;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAYI,eAAe,OAAO;gBAClC,YAAY,IAAIC,OAAO,WAAW;gBAClCJ;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,SAASE,WAAW;YACxB;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOG,IAAI;YACTH,UAAU,CAAC,2CAA2C,EAAEG,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC;QACtF;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAGJ,IAAI;YACPC;YACAF;QACJ;IACJ;IAEA,MAAa,UAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAChC;IAEA,MAAa,SACTD,MAA+B,EACwB;QACvD,IAAI;YACA,MAAMO,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,OAAO;oBACH,GAAGA,KAAK,KAAK;oBACb,GAAGP,OAAO,KAAK;gBACnB;gBACA,YAAYI,eAAe,OAAO;YACtC;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,SAAS;gBACT,MAAMJ,OAAO,KAAK;YACtB;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOM,IAAI;YAIT,IAAIA,cAAcE,eACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvB,OAAO;oBACH,SAASF,GAAG,OAAO,IAAI;oBACvB,MAAMA,GAAG,IAAI,IAAI;oBACjB,MAAM;wBACF,GAAGA,GAAG,IAAI;wBACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC9B;gBACJ;YACJ;YAKJ,OAAO,IAAI,CAAC,KAAK,CAAC;gBACd,OAAO;oBACH,SAAS,CAAC,6BAA6B,EAAEA,GAAG,OAAO,IAAI,iBAAiB;oBACxE,MAAMA,GAAG,IAAI,IAAI;gBACrB;YACJ;QACJ;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAACN;IAClC;IAEA,MAAa,MAAMA,MAA4B,EAAiC;QAC5E,MAAMS,QACFT,OAAO,KAAK,YAAYU,QAAQC,mBAAmBX,OAAO,KAAK,IAAIA,OAAO,KAAK;QACnF,IAAI;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAYI,eAAe,MAAM;gBACjC,YAAY,IAAIC,OAAO,WAAW;gBAClC,QAAQ;oBACJI;gBACJ;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzB,SAAST,OAAO,KAAK,CAAC,OAAO;gBAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACzBS;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOH,IAAI;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvB,GAAGN,MAAM;gBACT,OAAO;oBACH,GAAGS,KAAK;oBACR,SAASH,GAAG,OAAO,IAAIG,MAAM,OAAO;oBACpC,MAAMH,GAAG,IAAI,IAAIG,MAAM,IAAI;oBAC3B,MAAM;wBACF,GAAGA,MAAM,IAAI;wBACb,GAAGH,GAAG,IAAI;wBACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC9B;gBACJ;YACJ;QACJ;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvB,GAAGN,MAAM;YACT,OAAO;gBACH,GAAGA,OAAO,KAAK;gBACf,MAAM;oBACF,GAAGS,MAAM,IAAI;oBACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC9B;YACJ;QACJ;IACJ;AACJ"}