@webiny/background-tasks 0.0.0-unstable.a4f3e4ea8b → 0.0.0-unstable.eb81deee7e

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 (189) hide show
  1. package/admin/BackgroundTaskRoutes.js +16 -3
  2. package/admin/BackgroundTaskRoutes.js.map +1 -1
  3. package/admin/features/listLogs/ListLogsGateway.js +1 -1
  4. package/admin/features/listLogs/ListLogsGateway.js.map +1 -1
  5. package/admin/features/permissions/feature.d.ts +1 -1
  6. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +2 -2
  7. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -1
  8. package/admin/presentation/TaskDetail/TaskDetailPresenter.js +1 -1
  9. package/admin/presentation/TaskDetail/TaskDetailPresenter.js.map +1 -1
  10. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +1 -1
  11. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -1
  12. package/api/{features/GetTaskDefinition/feature.d.ts → BackgroundTasksFeature.d.ts} +1 -1
  13. package/api/BackgroundTasksFeature.js +61 -0
  14. package/api/BackgroundTasksFeature.js.map +1 -0
  15. package/api/TasksCrud.d.ts +10 -0
  16. package/api/TasksCrud.js +5 -0
  17. package/api/TasksCrud.js.map +1 -0
  18. package/api/abstractions/Timer.d.ts +1 -0
  19. package/api/abstractions/Timer.js +0 -0
  20. package/api/abstractions/index.d.ts +1 -0
  21. package/api/abstractions/index.js +1 -0
  22. package/api/crud/TaskLogPrivateModel.js +2 -1
  23. package/api/crud/TaskLogPrivateModel.js.map +1 -1
  24. package/api/crud/TaskPrivateModel.js +2 -1
  25. package/api/crud/TaskPrivateModel.js.map +1 -1
  26. package/api/crud/cleanupTaskSubtree.d.ts +2 -2
  27. package/api/crud/cleanupTaskSubtree.js +8 -7
  28. package/api/crud/cleanupTaskSubtree.js.map +1 -1
  29. package/api/crud/crud.tasks.d.ts +3 -2
  30. package/api/crud/crud.tasks.js +46 -44
  31. package/api/crud/crud.tasks.js.map +1 -1
  32. package/api/crud/definition.tasks.d.ts +3 -2
  33. package/api/crud/definition.tasks.js +4 -4
  34. package/api/crud/definition.tasks.js.map +1 -1
  35. package/api/crud/service.tasks.d.ts +3 -2
  36. package/api/crud/service.tasks.js +25 -21
  37. package/api/crud/service.tasks.js.map +1 -1
  38. package/api/decorators/{SelfCleaningTaskDecorator.d.ts → SelfCleaningTaskHandlerDecorator.d.ts} +21 -18
  39. package/api/decorators/SelfCleaningTaskHandlerDecorator.js +69 -0
  40. package/api/decorators/SelfCleaningTaskHandlerDecorator.js.map +1 -0
  41. package/api/decorators/TaskDefinitionDefaultsDecorator.d.ts +27 -0
  42. package/api/decorators/TaskDefinitionDefaultsDecorator.js +47 -0
  43. package/api/decorators/TaskDefinitionDefaultsDecorator.js.map +1 -0
  44. package/api/domain/TaskService.d.ts +12 -0
  45. package/api/domain/TaskService.js +5 -0
  46. package/api/domain/TaskService.js.map +1 -0
  47. package/api/features/AbortTask/AbortTaskUseCase.d.ts +2 -3
  48. package/api/features/AbortTask/AbortTaskUseCase.js +3 -3
  49. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -1
  50. package/api/features/AbortTask/feature.d.ts +1 -2
  51. package/api/features/AbortTask/feature.js +3 -2
  52. package/api/features/AbortTask/feature.js.map +1 -1
  53. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +3 -3
  54. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +3 -3
  55. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -1
  56. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +7 -4
  57. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -1
  58. package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.d.ts +13 -0
  59. package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.js +51 -0
  60. package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.js.map +1 -0
  61. package/api/features/{GetTaskDefinition → GetRunnableTaskDefinition}/abstractions.d.ts +6 -6
  62. package/api/features/GetRunnableTaskDefinition/abstractions.js +5 -0
  63. package/api/features/GetRunnableTaskDefinition/abstractions.js.map +1 -0
  64. package/api/features/GetRunnableTaskDefinition/feature.d.ts +4 -0
  65. package/api/features/GetRunnableTaskDefinition/feature.js +11 -0
  66. package/api/features/GetRunnableTaskDefinition/feature.js.map +1 -0
  67. package/api/features/GetRunnableTaskDefinition/index.d.ts +2 -0
  68. package/api/features/GetRunnableTaskDefinition/index.js +2 -0
  69. package/api/features/GetTask/GetTaskUseCase.d.ts +3 -3
  70. package/api/features/GetTask/GetTaskUseCase.js +3 -3
  71. package/api/features/GetTask/GetTaskUseCase.js.map +1 -1
  72. package/api/features/GetTask/feature.d.ts +1 -2
  73. package/api/features/GetTask/feature.js +3 -2
  74. package/api/features/GetTask/feature.js.map +1 -1
  75. package/api/features/ListTasks/ListTasksUseCase.d.ts +4 -3
  76. package/api/features/ListTasks/ListTasksUseCase.js +3 -3
  77. package/api/features/ListTasks/ListTasksUseCase.js.map +1 -1
  78. package/api/features/ListTasks/feature.d.ts +1 -2
  79. package/api/features/ListTasks/feature.js +3 -2
  80. package/api/features/ListTasks/feature.js.map +1 -1
  81. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +3 -3
  82. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -1
  83. package/api/features/TaskExecutionContext/abstractions.d.ts +3 -3
  84. package/api/features/TaskExecutionContext/abstractions.js.map +1 -1
  85. package/api/features/TaskHandlerResolver/TaskHandlerResolver.d.ts +12 -0
  86. package/api/features/TaskHandlerResolver/TaskHandlerResolver.js +19 -0
  87. package/api/features/TaskHandlerResolver/TaskHandlerResolver.js.map +1 -0
  88. package/api/features/TaskHandlerResolver/abstractions.d.ts +17 -0
  89. package/api/features/TaskHandlerResolver/abstractions.js +5 -0
  90. package/api/features/TaskHandlerResolver/abstractions.js.map +1 -0
  91. package/api/features/TaskHandlerResolver/feature.d.ts +9 -0
  92. package/api/features/TaskHandlerResolver/feature.js +11 -0
  93. package/api/features/TaskHandlerResolver/feature.js.map +1 -0
  94. package/api/features/TaskHandlerResolver/index.d.ts +2 -0
  95. package/api/features/TaskHandlerResolver/index.js +2 -0
  96. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +2 -3
  97. package/api/features/TriggerTask/TriggerTaskUseCase.js +3 -3
  98. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -1
  99. package/api/features/TriggerTask/feature.d.ts +1 -2
  100. package/api/features/TriggerTask/feature.js +3 -2
  101. package/api/features/TriggerTask/feature.js.map +1 -1
  102. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +6 -3
  103. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -1
  104. package/api/graphql/BackgroundTasksGraphQLSchema.d.ts +27 -0
  105. package/api/graphql/BackgroundTasksGraphQLSchema.js +441 -0
  106. package/api/graphql/BackgroundTasksGraphQLSchema.js.map +1 -0
  107. package/api/graphql/checkPermissions.js +2 -1
  108. package/api/graphql/checkPermissions.js.map +1 -1
  109. package/api/graphql/utils.d.ts +1 -1
  110. package/api/graphql/utils.js +1 -1
  111. package/api/graphql/utils.js.map +1 -1
  112. package/api/handler/types.d.ts +0 -2
  113. package/api/index.d.ts +10 -3
  114. package/api/index.js +9 -3
  115. package/api/response/DatabaseResponse.js +1 -1
  116. package/api/response/DatabaseResponse.js.map +1 -1
  117. package/api/runner/TaskControl.d.ts +25 -1
  118. package/api/runner/TaskControl.js +30 -17
  119. package/api/runner/TaskControl.js.map +1 -1
  120. package/api/runner/TaskManager.d.ts +12 -1
  121. package/api/runner/TaskManager.js +8 -6
  122. package/api/runner/TaskManager.js.map +1 -1
  123. package/api/runner/TaskManagerStore.d.ts +10 -2
  124. package/api/runner/TaskManagerStore.js +5 -3
  125. package/api/runner/TaskManagerStore.js.map +1 -1
  126. package/api/runner/TaskRunner.d.ts +3 -3
  127. package/api/runner/TaskRunner.js +25 -4
  128. package/api/runner/TaskRunner.js.map +1 -1
  129. package/api/runner/abstractions/TaskRunner.d.ts +2 -2
  130. package/api/service/createService.d.ts +3 -3
  131. package/api/service/createService.js +5 -10
  132. package/api/service/createService.js.map +1 -1
  133. package/api/service/index.d.ts +1 -4
  134. package/api/service/index.js +1 -12
  135. package/api/tasks/testingRunTask.d.ts +10 -2
  136. package/api/tasks/testingRunTask.js +10 -3
  137. package/api/tasks/testingRunTask.js.map +1 -1
  138. package/api/types.d.ts +2 -2
  139. package/api/types.js.map +1 -1
  140. package/package.json +25 -23
  141. package/testing/index.d.ts +3 -0
  142. package/testing/index.js +2 -0
  143. package/testing/mockTaskTriggerTransportPlugin.d.ts +2 -0
  144. package/testing/mockTaskTriggerTransportPlugin.js +18 -0
  145. package/testing/mockTaskTriggerTransportPlugin.js.map +1 -0
  146. package/testing/runner.d.ts +19 -0
  147. package/testing/runner.js +44 -0
  148. package/testing/runner.js.map +1 -0
  149. package/api/context.d.ts +0 -2
  150. package/api/context.js +0 -66
  151. package/api/context.js.map +0 -1
  152. package/api/decorators/RunnableTaskDecorator.d.ts +0 -32
  153. package/api/decorators/RunnableTaskDecorator.js +0 -69
  154. package/api/decorators/RunnableTaskDecorator.js.map +0 -1
  155. package/api/decorators/SelfCleaningTaskDecorator.js +0 -84
  156. package/api/decorators/SelfCleaningTaskDecorator.js.map +0 -1
  157. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +0 -12
  158. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +0 -27
  159. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +0 -1
  160. package/api/features/GetTaskDefinition/abstractions.js +0 -5
  161. package/api/features/GetTaskDefinition/abstractions.js.map +0 -1
  162. package/api/features/GetTaskDefinition/feature.js +0 -11
  163. package/api/features/GetTaskDefinition/feature.js.map +0 -1
  164. package/api/features/GetTaskDefinition/index.d.ts +0 -2
  165. package/api/features/GetTaskDefinition/index.js +0 -2
  166. package/api/graphql/BackgroundTaskSettingsSchema.d.ts +0 -2
  167. package/api/graphql/BackgroundTaskSettingsSchema.js +0 -84
  168. package/api/graphql/BackgroundTaskSettingsSchema.js.map +0 -1
  169. package/api/graphql/index.d.ts +0 -2
  170. package/api/graphql/index.js +0 -301
  171. package/api/graphql/index.js.map +0 -1
  172. package/api/handler/index.d.ts +0 -6
  173. package/api/handler/index.js +0 -55
  174. package/api/handler/index.js.map +0 -1
  175. package/api/handler/register.d.ts +0 -1
  176. package/api/handler/register.js +0 -15
  177. package/api/handler/register.js.map +0 -1
  178. package/api/plugins/TaskServicePlugin.d.ts +0 -19
  179. package/api/plugins/TaskServicePlugin.js +0 -13
  180. package/api/plugins/TaskServicePlugin.js.map +0 -1
  181. package/api/plugins/index.d.ts +0 -1
  182. package/api/plugins/index.js +0 -1
  183. package/api/service/EventBridgeEventTransportPlugin.d.ts +0 -16
  184. package/api/service/EventBridgeEventTransportPlugin.js +0 -52
  185. package/api/service/EventBridgeEventTransportPlugin.js.map +0 -1
  186. package/api/service/StepFunctionServicePlugin.d.ts +0 -25
  187. package/api/service/StepFunctionServicePlugin.js +0 -77
  188. package/api/service/StepFunctionServicePlugin.js.map +0 -1
  189. package/api/service/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api/service/createService.js","sources":["../../../src/api/service/createService.ts"],"sourcesContent":["import type { Context } from \"~/api/types.js\";\nimport type { ITaskService } from \"~/api/plugins/index.js\";\nimport { TaskServicePlugin } from \"~/api/plugins/index.js\";\nimport { WebinyError } from \"@webiny/error\";\n\nexport interface ICreateTransport {\n context: Context;\n}\n\nexport const createService = (params: ICreateTransport): ITaskService => {\n const plugins = params.context.plugins\n .byType<TaskServicePlugin>(TaskServicePlugin.type)\n .reverse();\n\n const plugin = plugins.find(plugin => plugin.default) || plugins[0];\n if (!plugin) {\n throw new WebinyError(\"Missing TaskServicePlugin.\", \"PLUGIN_ERROR\", {\n type: TaskServicePlugin.type\n });\n }\n\n const getTenant = (): string => {\n return params.context.tenancy.getCurrentTenant().id;\n };\n\n return plugin.createService({\n getTenant\n });\n};\n"],"names":["createService","params","plugins","TaskServicePlugin","plugin","WebinyError","getTenant"],"mappings":";;AASO,MAAMA,gBAAgB,CAACC;IAC1B,MAAMC,UAAUD,OAAO,OAAO,CAAC,OAAO,CACjC,MAAM,CAAoBE,kBAAkB,IAAI,EAChD,OAAO;IAEZ,MAAMC,SAASF,QAAQ,IAAI,CAACE,CAAAA,SAAUA,OAAO,OAAO,KAAKF,OAAO,CAAC,EAAE;IACnE,IAAI,CAACE,QACD,MAAM,IAAIC,YAAY,8BAA8B,gBAAgB;QAChE,MAAMF,kBAAkB,IAAI;IAChC;IAGJ,MAAMG,YAAY,IACPL,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE;IAGvD,OAAOG,OAAO,aAAa,CAAC;QACxBE;IACJ;AACJ"}
1
+ {"version":3,"file":"api/service/createService.js","sources":["../../../src/api/service/createService.ts"],"sourcesContent":["import type { Context } from \"~/api/types.js\";\nimport { WebinyError } from \"@webiny/error\";\nimport { TaskService } from \"~/api/domain/TaskService.js\";\n\nexport interface ICreateTransport {\n container: Context[\"container\"];\n}\n\nexport const createService = (params: ICreateTransport): TaskService.Interface => {\n const { container } = params;\n const service = container.resolveAll(TaskService);\n if (service.length === 0) {\n throw new WebinyError(\"Missing TaskService.\", \"TASK_SERVICE_ERROR\");\n }\n return service[service.length - 1];\n};\n"],"names":["createService","params","container","service","TaskService","WebinyError"],"mappings":";;AAQO,MAAMA,gBAAgB,CAACC;IAC1B,MAAM,EAAEC,SAAS,EAAE,GAAGD;IACtB,MAAME,UAAUD,UAAU,UAAU,CAACE;IACrC,IAAID,AAAmB,MAAnBA,QAAQ,MAAM,EACd,MAAM,IAAIE,YAAY,wBAAwB;IAElD,OAAOF,OAAO,CAACA,QAAQ,MAAM,GAAG,EAAE;AACtC"}
@@ -1,4 +1 @@
1
- import { EventBridgeEventTransportPlugin } from "./EventBridgeEventTransportPlugin.js";
2
- import { StepFunctionServicePlugin } from "./StepFunctionServicePlugin.js";
3
- export declare const createServicePlugins: () => (EventBridgeEventTransportPlugin | StepFunctionServicePlugin)[];
4
- export * from "./createService.js";
1
+ export { createService } from "./createService.js";
@@ -1,12 +1 @@
1
- import { EventBridgeEventTransportPlugin } from "./EventBridgeEventTransportPlugin.js";
2
- import { StepFunctionServicePlugin } from "./StepFunctionServicePlugin.js";
3
- export * from "./createService.js";
4
- const createServicePlugins = ()=>[
5
- new StepFunctionServicePlugin({
6
- default: true
7
- }),
8
- new EventBridgeEventTransportPlugin()
9
- ];
10
- export { createServicePlugins };
11
-
12
- //# sourceMappingURL=index.js.map
1
+ export { createService } from "./createService.js";
@@ -1,9 +1,17 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
1
+ import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ declare class TestingRunTaskHandler implements TaskHandler.Interface {
3
+ run({ controller }: TaskHandler.RunParams): Promise<TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
4
+ }
5
+ export declare const TestingRunTaskHandlerImplementation: typeof TestingRunTaskHandler & {
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
7
+ };
2
8
  declare class TestingRunTask implements TaskDefinition.Interface {
3
9
  id: string;
4
10
  title: string;
5
11
  description: string;
6
- run({ controller }: TaskDefinition.RunParams): Promise<TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
12
+ handler: typeof TestingRunTaskHandler & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskHandler<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
14
+ };
7
15
  }
8
16
  export declare const TestingRunTaskDefinition: typeof TestingRunTask & {
9
17
  __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
@@ -1,18 +1,25 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
- class TestingRunTask {
1
+ import { TaskDefinition, TaskHandler } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ class TestingRunTaskHandler {
3
3
  async run({ controller }) {
4
4
  return controller.response.done("Task successfully finished.");
5
5
  }
6
+ }
7
+ const TestingRunTaskHandlerImplementation = TaskHandler.createImplementation({
8
+ implementation: TestingRunTaskHandler,
9
+ dependencies: []
10
+ });
11
+ class TestingRunTask {
6
12
  constructor(){
7
13
  this.id = "testingRun";
8
14
  this.title = "Test Step Function Permissions";
9
15
  this.description = "A task to test the step function permissions.";
16
+ this.handler = TestingRunTaskHandlerImplementation;
10
17
  }
11
18
  }
12
19
  const TestingRunTaskDefinition = TaskDefinition.createImplementation({
13
20
  implementation: TestingRunTask,
14
21
  dependencies: []
15
22
  });
16
- export { TestingRunTaskDefinition };
23
+ export { TestingRunTaskDefinition, TestingRunTaskHandlerImplementation };
17
24
 
18
25
  //# sourceMappingURL=testingRunTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api/tasks/testingRunTask.js","sources":["../../../src/api/tasks/testingRunTask.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nclass TestingRunTask implements TaskDefinition.Interface {\n id = \"testingRun\";\n title = \"Test Step Function Permissions\";\n description = \"A task to test the step function permissions.\";\n\n async run({ controller }: TaskDefinition.RunParams) {\n return controller.response.done(\"Task successfully finished.\");\n }\n}\n\nexport const TestingRunTaskDefinition = TaskDefinition.createImplementation({\n implementation: TestingRunTask,\n dependencies: []\n});\n"],"names":["TestingRunTask","controller","TestingRunTaskDefinition","TaskDefinition"],"mappings":";AAEA,MAAMA;IAKF,MAAM,IAAI,EAAEC,UAAU,EAA4B,EAAE;QAChD,OAAOA,WAAW,QAAQ,CAAC,IAAI,CAAC;IACpC;;aANA,EAAE,GAAG;aACL,KAAK,GAAG;aACR,WAAW,GAAG;;AAKlB;AAEO,MAAMC,2BAA2BC,eAAe,oBAAoB,CAAC;IACxE,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
1
+ {"version":3,"file":"api/tasks/testingRunTask.js","sources":["../../../src/api/tasks/testingRunTask.ts"],"sourcesContent":["import {\n TaskDefinition,\n TaskHandler\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nclass TestingRunTaskHandler implements TaskHandler.Interface {\n async run({ controller }: TaskHandler.RunParams) {\n return controller.response.done(\"Task successfully finished.\");\n }\n}\n\nexport const TestingRunTaskHandlerImplementation = TaskHandler.createImplementation({\n implementation: TestingRunTaskHandler,\n dependencies: []\n});\n\nclass TestingRunTask implements TaskDefinition.Interface {\n id = \"testingRun\";\n title = \"Test Step Function Permissions\";\n description = \"A task to test the step function permissions.\";\n handler = TestingRunTaskHandlerImplementation;\n}\n\nexport const TestingRunTaskDefinition = TaskDefinition.createImplementation({\n implementation: TestingRunTask,\n dependencies: []\n});\n"],"names":["TestingRunTaskHandler","controller","TestingRunTaskHandlerImplementation","TaskHandler","TestingRunTask","TestingRunTaskDefinition","TaskDefinition"],"mappings":";AAKA,MAAMA;IACF,MAAM,IAAI,EAAEC,UAAU,EAAyB,EAAE;QAC7C,OAAOA,WAAW,QAAQ,CAAC,IAAI,CAAC;IACpC;AACJ;AAEO,MAAMC,sCAAsCC,YAAY,oBAAoB,CAAC;IAChF,gBAAgBH;IAChB,cAAc,EAAE;AACpB;AAEA,MAAMI;;aACF,EAAE,GAAG;aACL,KAAK,GAAG;aACR,WAAW,GAAG;aACd,OAAO,GAAGF;;AACd;AAEO,MAAMG,2BAA2BC,eAAe,oBAAoB,CAAC;IACxE,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
package/api/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { CmsContext as BaseContext, CmsEntryListParams, CmsEntryMeta, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
2
  import type { IResponseError } from "../api/response/abstractions/index.js";
3
3
  import type { GenericRecord } from "@webiny/api/types.js";
4
- import type { IStepFunctionServiceFetchResult } from "../api/service/StepFunctionServicePlugin.js";
4
+ import type { IServiceInfo } from "@webiny/api-core/features/task/TaskService/abstractions.js";
5
5
  import type { SecurityPermission } from "@webiny/api-core/types/security.js";
6
6
  import type { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
7
7
  import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
@@ -151,7 +151,7 @@ export interface ITaskAbortParams {
151
151
  export interface ITasksContextServiceObject {
152
152
  trigger: <T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: ITaskTriggerParams<T>) => Promise<Result<ITask<T, O>, BaseError>>;
153
153
  abort: <T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: ITaskAbortParams) => Promise<Result<ITask<T, O>, BaseError>>;
154
- fetchServiceInfo: (input: ITask<any, any> | string) => Promise<Result<IStepFunctionServiceFetchResult, BaseError>>;
154
+ fetchServiceInfo: (input: ITask<any, any> | string) => Promise<Result<IServiceInfo, BaseError>>;
155
155
  }
156
156
  export interface ITasksContextObject extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {
157
157
  }
package/api/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api/types.js","sources":["../../src/api/types.ts"],"sourcesContent":["import type {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IResponseError } from \"~/api/response/abstractions/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IStepFunctionServiceFetchResult } from \"~/api/service/StepFunctionServicePlugin.js\";\nimport type { SecurityPermission } from \"@webiny/api-core/types/security.js\";\nimport type { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { BaseError, Result } from \"@webiny/feature/api\";\nimport type { IdInterfaceGenerator, NumericInterfaceGenerator } from \"@webiny/api\";\n// TODO had to import for augmentation to work, but is there a better way to do this?\nimport \"./features/TaskController/augmentation.js\";\n\nexport * from \"./handler/types.js\";\nexport * from \"./response/abstractions/index.js\";\nexport * from \"./runner/abstractions/index.js\";\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum TaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: TaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: TaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: TaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport type IGetTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\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 extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"parentId\">,\n IdInterfaceGenerator<\"definitionId\">,\n IdInterfaceGenerator<\"taskStatus\"> {\n //\n}\n\nexport interface IListTaskParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: IListTaskParamsWhere;\n}\n\nexport interface IListTaskLogParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"task\">,\n NumericInterfaceGenerator<\"iteration\"> {}\n\nexport interface IListTaskLogParams extends Omit<\n CmsEntryListParams,\n \"fields\" | \"search\" | \"where\"\n> {\n where?: IListTaskLogParamsWhere;\n}\n\nexport interface ITaskCreateData<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {\n definitionId: string;\n name: string;\n input: T;\n parentId?: string;\n}\n\nexport interface ITaskUpdateData<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> {\n name?: string;\n input?: I;\n output?: O;\n taskStatus?: TaskDataStatus;\n executionName?: string;\n startedOn?: string;\n finishedOn?: string;\n eventResponse?: GenericRecord;\n iterations?: number;\n}\n\nexport interface 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<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string\n ): Promise<IGetTaskResponse<T, O> | null>;\n listTasks<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: IListTaskParams\n ): Promise<IListTasksResponse<T, O>>;\n createTask<T extends TaskService.TaskInput = TaskService.TaskInput>(\n task: ITaskCreateData<T>\n ): Promise<ICreateTaskResponse<T>>;\n updateTask<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string,\n data: Partial<ITaskUpdateData<T, O>>\n ): Promise<IUpdateTaskResponse<T, O>>;\n deleteTask(id: string): Promise<IDeleteTaskResponse>;\n /**\n * Recursively delete a task, its logs (if any were written), and its entire\n * descendant subtree. Best-effort: per-record failures are logged and swallowed,\n * the method never throws.\n */\n cleanupTaskSubtree(id: string): Promise<void>;\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\nexport interface ITasksContextDefinitionObject {\n getDefinition: <\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n id: string\n ) => TaskDefinition.Runnable<I, O> | null;\n listDefinitions: () => TaskDefinition.Interface[];\n}\n\nexport interface ITaskTriggerParams<I = ITaskDataInput> {\n parent?: Pick<ITask, \"id\">;\n definition: string;\n name?: string;\n input?: I;\n delay?: number;\n}\n\nexport interface ITaskAbortParams {\n id: string;\n message?: string;\n}\n\nexport interface ITasksContextServiceObject {\n trigger: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskTriggerParams<T>\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n abort: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskAbortParams\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n fetchServiceInfo: (\n input: ITask<any, any> | string\n ) => Promise<Result<IStepFunctionServiceFetchResult, BaseError>>;\n}\n\nexport interface ITasksContextObject\n extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {}\n\nexport interface Context extends BaseContext {\n tasks: ITasksContextObject;\n}\n\nexport interface TaskPermission extends SecurityPermission {\n name: \"task\";\n rwd?: string;\n}\n\nexport type ITask<\n I extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = TaskService.Task<I, O>;\n\nexport type SelfCleanup = TaskDefinition.SelfCleanup;\nexport type SelfCleanupEvent = TaskDefinition.SelfCleanupEvent;\n"],"names":["TaskLogItemType","TaskDataStatus"],"mappings":";;;;AAuBO,IAAKA,wBAAeA,WAAAA,GAAAA,SAAfA,eAAe;;;WAAfA;;AAwCL,IAAKC,uBAAcA,WAAAA,GAAAA,SAAdA,cAAc;;;;;;WAAdA"}
1
+ {"version":3,"file":"api/types.js","sources":["../../src/api/types.ts"],"sourcesContent":["import type {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IResponseError } from \"~/api/response/abstractions/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IServiceInfo } from \"@webiny/api-core/features/task/TaskService/abstractions.js\";\nimport type { SecurityPermission } from \"@webiny/api-core/types/security.js\";\nimport type { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { BaseError, Result } from \"@webiny/feature/api\";\nimport type { IdInterfaceGenerator, NumericInterfaceGenerator } from \"@webiny/api\";\n// TODO had to import for augmentation to work, but is there a better way to do this?\nimport \"./features/TaskController/augmentation.js\";\n\nexport * from \"./handler/types.js\";\nexport * from \"./response/abstractions/index.js\";\nexport * from \"./runner/abstractions/index.js\";\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum TaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: TaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: TaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: TaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport type IGetTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\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 extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"parentId\">,\n IdInterfaceGenerator<\"definitionId\">,\n IdInterfaceGenerator<\"taskStatus\"> {\n //\n}\n\nexport interface IListTaskParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: IListTaskParamsWhere;\n}\n\nexport interface IListTaskLogParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"task\">,\n NumericInterfaceGenerator<\"iteration\"> {}\n\nexport interface IListTaskLogParams extends Omit<\n CmsEntryListParams,\n \"fields\" | \"search\" | \"where\"\n> {\n where?: IListTaskLogParamsWhere;\n}\n\nexport interface ITaskCreateData<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {\n definitionId: string;\n name: string;\n input: T;\n parentId?: string;\n}\n\nexport interface ITaskUpdateData<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> {\n name?: string;\n input?: I;\n output?: O;\n taskStatus?: TaskDataStatus;\n executionName?: string;\n startedOn?: string;\n finishedOn?: string;\n eventResponse?: GenericRecord;\n iterations?: number;\n}\n\nexport interface 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<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string\n ): Promise<IGetTaskResponse<T, O> | null>;\n listTasks<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: IListTaskParams\n ): Promise<IListTasksResponse<T, O>>;\n createTask<T extends TaskService.TaskInput = TaskService.TaskInput>(\n task: ITaskCreateData<T>\n ): Promise<ICreateTaskResponse<T>>;\n updateTask<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string,\n data: Partial<ITaskUpdateData<T, O>>\n ): Promise<IUpdateTaskResponse<T, O>>;\n deleteTask(id: string): Promise<IDeleteTaskResponse>;\n /**\n * Recursively delete a task, its logs (if any were written), and its entire\n * descendant subtree. Best-effort: per-record failures are logged and swallowed,\n * the method never throws.\n */\n cleanupTaskSubtree(id: string): Promise<void>;\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\nexport interface ITasksContextDefinitionObject {\n getDefinition: <\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n id: string\n ) => TaskDefinition.Runnable<I, O> | null;\n listDefinitions: () => TaskDefinition.Interface[];\n}\n\nexport interface ITaskTriggerParams<I = ITaskDataInput> {\n parent?: Pick<ITask, \"id\">;\n definition: string;\n name?: string;\n input?: I;\n delay?: number;\n}\n\nexport interface ITaskAbortParams {\n id: string;\n message?: string;\n}\n\nexport interface ITasksContextServiceObject {\n trigger: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskTriggerParams<T>\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n abort: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskAbortParams\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n fetchServiceInfo: (input: ITask<any, any> | string) => Promise<Result<IServiceInfo, BaseError>>;\n}\n\nexport interface ITasksContextObject\n extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {}\n\nexport interface Context extends BaseContext {\n tasks: ITasksContextObject;\n}\n\nexport interface TaskPermission extends SecurityPermission {\n name: \"task\";\n rwd?: string;\n}\n\nexport type ITask<\n I extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = TaskService.Task<I, O>;\n\nexport type SelfCleanup = TaskDefinition.SelfCleanup;\nexport type SelfCleanupEvent = TaskDefinition.SelfCleanupEvent;\n"],"names":["TaskLogItemType","TaskDataStatus"],"mappings":";;;;AAuBO,IAAKA,wBAAeA,WAAAA,GAAAA,SAAfA,eAAe;;;WAAfA;;AAwCL,IAAKC,uBAAcA,WAAAA,GAAAA,SAAdA,cAAc;;;;;;WAAdA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/background-tasks",
3
- "version": "0.0.0-unstable.a4f3e4ea8b",
3
+ "version": "0.0.0-unstable.eb81deee7e",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -19,39 +19,41 @@
19
19
  },
20
20
  "license": "MIT",
21
21
  "dependencies": {
22
- "@webiny/admin-ui": "0.0.0-unstable.a4f3e4ea8b",
23
- "@webiny/api": "0.0.0-unstable.a4f3e4ea8b",
24
- "@webiny/api-core": "0.0.0-unstable.a4f3e4ea8b",
25
- "@webiny/api-headless-cms": "0.0.0-unstable.a4f3e4ea8b",
26
- "@webiny/app": "0.0.0-unstable.a4f3e4ea8b",
27
- "@webiny/app-admin": "0.0.0-unstable.a4f3e4ea8b",
28
- "@webiny/aws-sdk": "0.0.0-unstable.a4f3e4ea8b",
29
- "@webiny/error": "0.0.0-unstable.a4f3e4ea8b",
30
- "@webiny/feature": "0.0.0-unstable.a4f3e4ea8b",
31
- "@webiny/handler": "0.0.0-unstable.a4f3e4ea8b",
32
- "@webiny/handler-aws": "0.0.0-unstable.a4f3e4ea8b",
33
- "@webiny/handler-graphql": "0.0.0-unstable.a4f3e4ea8b",
34
- "@webiny/icons": "0.0.0-unstable.a4f3e4ea8b",
35
- "@webiny/plugins": "0.0.0-unstable.a4f3e4ea8b",
36
- "@webiny/sdk": "0.0.0-unstable.a4f3e4ea8b",
37
- "@webiny/utils": "0.0.0-unstable.a4f3e4ea8b",
22
+ "@webiny/admin-ui": "0.0.0-unstable.eb81deee7e",
23
+ "@webiny/api": "0.0.0-unstable.eb81deee7e",
24
+ "@webiny/api-core": "0.0.0-unstable.eb81deee7e",
25
+ "@webiny/api-graphql": "0.0.0-unstable.eb81deee7e",
26
+ "@webiny/api-headless-cms": "0.0.0-unstable.eb81deee7e",
27
+ "@webiny/app": "0.0.0-unstable.eb81deee7e",
28
+ "@webiny/app-admin": "0.0.0-unstable.eb81deee7e",
29
+ "@webiny/error": "0.0.0-unstable.eb81deee7e",
30
+ "@webiny/feature": "0.0.0-unstable.eb81deee7e",
31
+ "@webiny/handler": "0.0.0-unstable.eb81deee7e",
32
+ "@webiny/icons": "0.0.0-unstable.eb81deee7e",
33
+ "@webiny/plugins": "0.0.0-unstable.eb81deee7e",
34
+ "@webiny/sdk": "0.0.0-unstable.eb81deee7e",
35
+ "@webiny/utils": "0.0.0-unstable.eb81deee7e",
38
36
  "deep-equal": "2.2.3",
37
+ "graphql": "16.14.2",
39
38
  "lodash": "4.18.1",
40
- "mobx": "6.16.1",
41
- "mobx-react-lite": "4.1.1",
42
- "object-merge-advanced": "14.1.3",
39
+ "mobx": "7.0.3",
40
+ "mobx-react-lite": "5.0.3",
41
+ "object-merge-advanced": "14.2.0",
43
42
  "object-sizeof": "2.6.5",
44
43
  "react": "18.3.1",
45
44
  "react-dom": "18.3.1",
46
45
  "zod": "4.4.3"
47
46
  },
48
47
  "devDependencies": {
49
- "@webiny/build-tools": "0.0.0-unstable.a4f3e4ea8b",
50
- "@webiny/project-utils": "0.0.0-unstable.a4f3e4ea8b",
48
+ "@webiny/api-core-testing": "0.0.0-unstable.eb81deee7e",
49
+ "@webiny/build-tools": "0.0.0-unstable.eb81deee7e",
50
+ "@webiny/di": "1.1.0",
51
+ "@webiny/event-handler-core": "0.0.0-unstable.eb81deee7e",
52
+ "@webiny/wcp": "0.0.0-unstable.eb81deee7e",
51
53
  "rimraf": "6.1.3",
52
54
  "type-fest": "5.8.0",
53
55
  "typescript": "7.0.2",
54
- "vitest": "4.1.10"
56
+ "vitest": "4.1.11"
55
57
  },
56
58
  "publishConfig": {
57
59
  "access": "public"
@@ -0,0 +1,3 @@
1
+ export { createRunner } from "./runner.js";
2
+ export type { ICreateRunnerParams, ICreateRunnerParamsOnContinueCallable, ICreateRunnerParamsOnContinueCallableParams, IExecuteEvent } from "./runner.js";
3
+ export { createMockTaskService } from "./mockTaskTriggerTransportPlugin.js";
@@ -0,0 +1,2 @@
1
+ export { createRunner } from "./runner.js";
2
+ export { createMockTaskService } from "./mockTaskTriggerTransportPlugin.js";
@@ -0,0 +1,2 @@
1
+ import type { TaskService } from "../api/domain/TaskService.js";
2
+ export declare const createMockTaskService: () => TaskService.Interface;
@@ -0,0 +1,18 @@
1
+ const createMockTaskService = ()=>({
2
+ async send () {
3
+ return {
4
+ Entries: [],
5
+ $metadata: {},
6
+ FailedEntryCount: 0
7
+ };
8
+ },
9
+ async fetch (input) {
10
+ return {
11
+ fetched: true,
12
+ input
13
+ };
14
+ }
15
+ });
16
+ export { createMockTaskService };
17
+
18
+ //# sourceMappingURL=mockTaskTriggerTransportPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing/mockTaskTriggerTransportPlugin.js","sources":["../../src/testing/mockTaskTriggerTransportPlugin.ts"],"sourcesContent":["import type { TaskService } from \"~/api/domain/TaskService.js\";\n\nexport const createMockTaskService = (): TaskService.Interface => {\n return {\n async send() {\n return {\n Entries: [],\n $metadata: {},\n FailedEntryCount: 0\n };\n },\n async fetch(input: any) {\n return {\n fetched: true,\n input\n } as any;\n }\n };\n};\n"],"names":["createMockTaskService","input"],"mappings":"AAEO,MAAMA,wBAAwB,IAC1B;QACH,MAAM;YACF,OAAO;gBACH,SAAS,EAAE;gBACX,WAAW,CAAC;gBACZ,kBAAkB;YACtB;QACJ;QACA,MAAM,OAAMC,KAAU;YAClB,OAAO;gBACH,SAAS;gBACTA;YACJ;QACJ;IACJ"}
@@ -0,0 +1,19 @@
1
+ import type { Context, IResponseContinueResult, ITaskEvent } from "../api/types.js";
2
+ import { ResponseContinueResult } from "../api/response/ResponseContinueResult.js";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ export interface ICreateRunnerParamsOnContinueCallableParams {
5
+ taskId: string;
6
+ iteration: number;
7
+ result: IResponseContinueResult;
8
+ }
9
+ export interface ICreateRunnerParamsOnContinueCallable {
10
+ (params: ICreateRunnerParamsOnContinueCallableParams): Promise<void>;
11
+ }
12
+ export interface ICreateRunnerParams<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
13
+ context: Context;
14
+ task: TaskDefinition.Interface<I, O>;
15
+ getRemainingTimeInMills?: () => number;
16
+ onContinue?: ICreateRunnerParamsOnContinueCallable;
17
+ }
18
+ export type IExecuteEvent = Pick<ITaskEvent, "webinyTaskId"> & Partial<Pick<ITaskEvent, "tenant">>;
19
+ export declare const createRunner: <I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(params: ICreateRunnerParams<I, O>) => (event: IExecuteEvent) => Promise<import("~/api/types.js").IResponseAbortedResult | import("~/api/types.js").IResponseDoneResult<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput> | import("~/api/types.js").IResponseErrorResult | ResponseContinueResult<any>>;
@@ -0,0 +1,44 @@
1
+ import { TaskRunner } from "../api/runner/index.js";
2
+ import { timerFactory } from "@webiny/utils/features/Timer/factory.js";
3
+ import { TaskEventValidation } from "../api/runner/TaskEventValidation.js";
4
+ import { ResponseContinueResult } from "../api/response/ResponseContinueResult.js";
5
+ import { createMockTaskService } from "./mockTaskTriggerTransportPlugin.js";
6
+ import { TaskService } from "../api/domain/TaskService.js";
7
+ const createRunner = (params)=>{
8
+ params.context.container.registerInstance(TaskService, createMockTaskService());
9
+ const runner = new TaskRunner(params.context, timerFactory({
10
+ getRemainingTimeInMillis: ()=>{
11
+ if (!params.getRemainingTimeInMills) return 300000;
12
+ return params.getRemainingTimeInMills();
13
+ }
14
+ }), new TaskEventValidation());
15
+ const execute = async (event)=>await runner.run({
16
+ tenant: "root",
17
+ ...event,
18
+ stateMachineId: "aMockStateMachineId",
19
+ webinyTaskDefinitionId: params.task.id,
20
+ endpoint: "manage",
21
+ executionName: "aMockExecutionName"
22
+ });
23
+ return async (event)=>{
24
+ let iteration = 1;
25
+ let result;
26
+ while(result = await execute(event)){
27
+ if (result instanceof ResponseContinueResult && params.onContinue) {
28
+ await params.onContinue({
29
+ taskId: event.webinyTaskId,
30
+ iteration,
31
+ result
32
+ });
33
+ iteration++;
34
+ console.debug(`Continuing task ${params.task.id} #${iteration}.`);
35
+ continue;
36
+ }
37
+ break;
38
+ }
39
+ return result;
40
+ };
41
+ };
42
+ export { createRunner };
43
+
44
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing/runner.js","sources":["../../src/testing/runner.ts"],"sourcesContent":["import type { Context, IResponseContinueResult, IResponseResult, ITaskEvent } from \"~/api/types.js\";\nimport { TaskRunner } from \"~/api/runner/index.js\";\nimport { timerFactory } from \"@webiny/utils/features/Timer/factory.js\";\nimport { TaskEventValidation } from \"~/api/runner/TaskEventValidation.js\";\nimport { ResponseContinueResult } from \"~/api/response/ResponseContinueResult.js\";\nimport { createMockTaskService } from \"./mockTaskTriggerTransportPlugin.js\";\nimport { TaskService } from \"~/api/domain/TaskService.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface ICreateRunnerParamsOnContinueCallableParams {\n taskId: string;\n iteration: number;\n result: IResponseContinueResult;\n}\n\nexport interface ICreateRunnerParamsOnContinueCallable {\n (params: ICreateRunnerParamsOnContinueCallableParams): Promise<void>;\n}\n\nexport interface ICreateRunnerParams<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> {\n context: Context;\n task: TaskDefinition.Interface<I, O>;\n getRemainingTimeInMills?: () => number;\n onContinue?: ICreateRunnerParamsOnContinueCallable;\n}\n\nexport type IExecuteEvent = Pick<ITaskEvent, \"webinyTaskId\"> & Partial<Pick<ITaskEvent, \"tenant\">>;\n\nexport const createRunner = <\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n>(\n params: ICreateRunnerParams<I, O>\n) => {\n params.context.container.registerInstance(TaskService, createMockTaskService());\n const runner = new TaskRunner(\n params.context,\n timerFactory({\n getRemainingTimeInMillis: () => {\n if (!params.getRemainingTimeInMills) {\n return 5 * 60 * 1000;\n }\n return params.getRemainingTimeInMills();\n }\n }),\n new TaskEventValidation()\n );\n\n const execute = async (event: IExecuteEvent) => {\n return await runner.run({\n tenant: \"root\",\n ...event,\n stateMachineId: \"aMockStateMachineId\",\n webinyTaskDefinitionId: params.task.id,\n endpoint: \"manage\",\n executionName: \"aMockExecutionName\"\n });\n };\n\n return async (event: IExecuteEvent) => {\n let iteration = 1;\n let result: IResponseResult;\n while ((result = await execute(event))) {\n if (result instanceof ResponseContinueResult && params.onContinue) {\n await params.onContinue({\n taskId: event.webinyTaskId,\n iteration,\n result\n });\n iteration++;\n console.debug(`Continuing task ${params.task.id} #${iteration}.`);\n continue;\n }\n return result;\n }\n return result;\n };\n};\n"],"names":["createRunner","params","TaskService","createMockTaskService","runner","TaskRunner","timerFactory","TaskEventValidation","execute","event","iteration","result","ResponseContinueResult","console"],"mappings":";;;;;;AA+BO,MAAMA,eAAe,CAIxBC;IAEAA,OAAO,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAACC,aAAaC;IACvD,MAAMC,SAAS,IAAIC,WACfJ,OAAO,OAAO,EACdK,aAAa;QACT,0BAA0B;YACtB,IAAI,CAACL,OAAO,uBAAuB,EAC/B,OAAO;YAEX,OAAOA,OAAO,uBAAuB;QACzC;IACJ,IACA,IAAIM;IAGR,MAAMC,UAAU,OAAOC,QACZ,MAAML,OAAO,GAAG,CAAC;YACpB,QAAQ;YACR,GAAGK,KAAK;YACR,gBAAgB;YAChB,wBAAwBR,OAAO,IAAI,CAAC,EAAE;YACtC,UAAU;YACV,eAAe;QACnB;IAGJ,OAAO,OAAOQ;QACV,IAAIC,YAAY;QAChB,IAAIC;QACJ,MAAQA,SAAS,MAAMH,QAAQC,OAAS;YACpC,IAAIE,kBAAkBC,0BAA0BX,OAAO,UAAU,EAAE;gBAC/D,MAAMA,OAAO,UAAU,CAAC;oBACpB,QAAQQ,MAAM,YAAY;oBAC1BC;oBACAC;gBACJ;gBACAD;gBACAG,QAAQ,KAAK,CAAC,CAAC,gBAAgB,EAAEZ,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,EAAES,UAAU,CAAC,CAAC;gBAChE;YACJ;YACA;QACJ;QACA,OAAOC;IACX;AACJ"}
package/api/context.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import type { Plugin } from "@webiny/plugins";
2
- export declare const createBackgroundTaskContext: () => Plugin[];
package/api/context.js DELETED
@@ -1,66 +0,0 @@
1
- import { ContextPlugin } from "@webiny/api";
2
- import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
- import { RunnableTaskDecorator } from "./decorators/RunnableTaskDecorator.js";
4
- import { SelfCleaningTaskDecorator } from "./decorators/SelfCleaningTaskDecorator.js";
5
- import { TaskController } from "./features/TaskController/index.js";
6
- import { TaskPrivateModel } from "./crud/TaskPrivateModel.js";
7
- import { TaskLogPrivateModel } from "./crud/TaskLogPrivateModel.js";
8
- import { createDefinitionCrud } from "./crud/definition.tasks.js";
9
- import { createServiceCrud } from "./crud/service.tasks.js";
10
- import { createTaskCrud } from "./crud/crud.tasks.js";
11
- import { createServicePlugins } from "./service/index.js";
12
- import { TaskExecutionContextFeature } from "./features/TaskExecutionContext/feature.js";
13
- import { GetTaskDefinitionFeature } from "./features/GetTaskDefinition/feature.js";
14
- import { ListTaskDefinitionsFeature } from "./features/ListTaskDefinitions/feature.js";
15
- import { CleanupTaskSubtreeUseCase, CleanupTaskSubtreeUseCaseImpl } from "./features/CleanupTaskSubtree/index.js";
16
- import { TestingRunTaskDefinition } from "./tasks/testingRunTask.js";
17
- import { createRegisterExtensionPlugin } from "@webiny/handler";
18
- import { BackgroundTaskSettingsModel } from "./models/BackgroundTaskSettingsModel.js";
19
- import { GetBackgroundTaskSettingsFeature } from "./features/GetBackgroundTaskSettings/feature.js";
20
- import { UpdateBackgroundTaskSettingsFeature } from "./features/UpdateBackgroundTaskSettings/feature.js";
21
- import { BackgroundTaskPermissionsFeature } from "./features/BackgroundTaskPermissions/feature.js";
22
- import { createBackgroundTaskSettingsGraphQL } from "./graphql/BackgroundTaskSettingsSchema.js";
23
- const createTasksCrud = ()=>{
24
- const tasksCrudPlugin = new ContextPlugin(async (context)=>{
25
- context.container.registerDecorator(RunnableTaskDecorator);
26
- context.container.registerDecorator(SelfCleaningTaskDecorator);
27
- GetTaskDefinitionFeature.register(context.container);
28
- ListTaskDefinitionsFeature.register(context.container);
29
- context.tasks = {
30
- ...createDefinitionCrud(context),
31
- ...createTaskCrud(context),
32
- ...createServiceCrud(context)
33
- };
34
- context.container.registerInstance(CleanupTaskSubtreeUseCase, new CleanupTaskSubtreeUseCaseImpl(context));
35
- });
36
- tasksCrudPlugin.name = "tasks.context";
37
- return tasksCrudPlugin;
38
- };
39
- const createTasksContext = ()=>{
40
- const modelsPlugin = createRegisterExtensionPlugin((context)=>{
41
- context.container.register(TaskPrivateModel);
42
- context.container.register(TaskLogPrivateModel);
43
- context.container.register(BackgroundTaskSettingsModel);
44
- });
45
- return [
46
- ...createServicePlugins(),
47
- createTasksCrud(),
48
- modelsPlugin
49
- ];
50
- };
51
- const createBackgroundTaskContext = ()=>[
52
- ...createTasksContext(),
53
- ...createBackgroundTaskSettingsGraphQL(),
54
- new ContextPlugin((context)=>{
55
- context.container.registerInstance(TaskService, context.tasks);
56
- TaskExecutionContextFeature.register(context.container);
57
- context.container.register(TaskController);
58
- context.container.register(TestingRunTaskDefinition);
59
- BackgroundTaskPermissionsFeature.register(context.container);
60
- GetBackgroundTaskSettingsFeature.register(context.container);
61
- UpdateBackgroundTaskSettingsFeature.register(context.container);
62
- })
63
- ];
64
- export { createBackgroundTaskContext };
65
-
66
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api/context.js","sources":["../../src/api/context.ts"],"sourcesContent":["import type { Plugin } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { RunnableTaskDecorator } from \"./decorators/RunnableTaskDecorator.js\";\nimport { SelfCleaningTaskDecorator } from \"./decorators/SelfCleaningTaskDecorator.js\";\nimport { TaskController } from \"./features/TaskController/index.js\";\nimport type { Context } from \"~/api/types.js\";\nimport { TaskPrivateModel } from \"./crud/TaskPrivateModel.js\";\nimport { TaskLogPrivateModel } from \"./crud/TaskLogPrivateModel.js\";\nimport { createDefinitionCrud } from \"./crud/definition.tasks.js\";\nimport { createServiceCrud } from \"~/api/crud/service.tasks.js\";\nimport { createTaskCrud } from \"./crud/crud.tasks.js\";\nimport { createServicePlugins } from \"~/api/service/index.js\";\nimport { TaskExecutionContextFeature } from \"~/api/features/TaskExecutionContext/feature.js\";\nimport { GetTaskDefinitionFeature } from \"~/api/features/GetTaskDefinition/feature.js\";\nimport { ListTaskDefinitionsFeature } from \"~/api/features/ListTaskDefinitions/feature.js\";\nimport {\n CleanupTaskSubtreeUseCase,\n CleanupTaskSubtreeUseCaseImpl\n} from \"~/api/features/CleanupTaskSubtree/index.js\";\nimport { TestingRunTaskDefinition } from \"~/api/tasks/testingRunTask.js\";\nimport { createRegisterExtensionPlugin } from \"@webiny/handler\";\nimport { BackgroundTaskSettingsModel } from \"~/api/models/BackgroundTaskSettingsModel.js\";\nimport { GetBackgroundTaskSettingsFeature } from \"~/api/features/GetBackgroundTaskSettings/feature.js\";\nimport { UpdateBackgroundTaskSettingsFeature } from \"~/api/features/UpdateBackgroundTaskSettings/feature.js\";\nimport { BackgroundTaskPermissionsFeature } from \"~/api/features/BackgroundTaskPermissions/feature.js\";\nimport { createBackgroundTaskSettingsGraphQL } from \"~/api/graphql/BackgroundTaskSettingsSchema.js\";\n\nconst createTasksCrud = () => {\n const tasksCrudPlugin = new ContextPlugin<Context>(async context => {\n // Register the RunnableTaskDecorator to wrap all TaskDefinition instances\n context.container.registerDecorator(RunnableTaskDecorator);\n context.container.registerDecorator(SelfCleaningTaskDecorator);\n\n // Register task definition use cases\n GetTaskDefinitionFeature.register(context.container);\n ListTaskDefinitionsFeature.register(context.container);\n\n context.tasks = {\n ...createDefinitionCrud(context),\n ...createTaskCrud(context),\n ...createServiceCrud(context)\n };\n\n // The cleanup use case is a thin wrapper around `context.tasks.cleanupTaskSubtree`,\n // so it must register AFTER the CRUD is wired onto the context.\n context.container.registerInstance(\n CleanupTaskSubtreeUseCase,\n new CleanupTaskSubtreeUseCaseImpl(context)\n );\n });\n\n tasksCrudPlugin.name = \"tasks.context\";\n\n return tasksCrudPlugin;\n};\n\nconst createTasksContext = (): Plugin[] => {\n const modelsPlugin = createRegisterExtensionPlugin(context => {\n context.container.register(TaskPrivateModel);\n context.container.register(TaskLogPrivateModel);\n context.container.register(BackgroundTaskSettingsModel);\n });\n\n return [...createServicePlugins(), createTasksCrud(), modelsPlugin];\n};\n\nexport const createBackgroundTaskContext = (): Plugin[] => {\n return [\n ...createTasksContext(),\n ...createBackgroundTaskSettingsGraphQL(),\n new ContextPlugin<Context>(context => {\n // Register legacy tasks context via a new abstraction\n context.container.registerInstance(TaskService, context.tasks);\n\n // Register TaskExecutionContext EARLY (singleton, empty)\n TaskExecutionContextFeature.register(context.container);\n\n // Register TaskController (depends on TaskExecutionContext)\n context.container.register(TaskController);\n\n // Register a test task\n context.container.register(TestingRunTaskDefinition);\n\n // Permissions.\n BackgroundTaskPermissionsFeature.register(context.container);\n\n // Settings features.\n GetBackgroundTaskSettingsFeature.register(context.container);\n UpdateBackgroundTaskSettingsFeature.register(context.container);\n })\n ];\n};\n"],"names":["createTasksCrud","tasksCrudPlugin","ContextPlugin","context","RunnableTaskDecorator","SelfCleaningTaskDecorator","GetTaskDefinitionFeature","ListTaskDefinitionsFeature","createDefinitionCrud","createTaskCrud","createServiceCrud","CleanupTaskSubtreeUseCase","CleanupTaskSubtreeUseCaseImpl","createTasksContext","modelsPlugin","createRegisterExtensionPlugin","TaskPrivateModel","TaskLogPrivateModel","BackgroundTaskSettingsModel","createServicePlugins","createBackgroundTaskContext","createBackgroundTaskSettingsGraphQL","TaskService","TaskExecutionContextFeature","TaskController","TestingRunTaskDefinition","BackgroundTaskPermissionsFeature","GetBackgroundTaskSettingsFeature","UpdateBackgroundTaskSettingsFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAMA,kBAAkB;IACpB,MAAMC,kBAAkB,IAAIC,cAAuB,OAAMC;QAErDA,QAAQ,SAAS,CAAC,iBAAiB,CAACC;QACpCD,QAAQ,SAAS,CAAC,iBAAiB,CAACE;QAGpCC,yBAAyB,QAAQ,CAACH,QAAQ,SAAS;QACnDI,2BAA2B,QAAQ,CAACJ,QAAQ,SAAS;QAErDA,QAAQ,KAAK,GAAG;YACZ,GAAGK,qBAAqBL,QAAQ;YAChC,GAAGM,eAAeN,QAAQ;YAC1B,GAAGO,kBAAkBP,QAAQ;QACjC;QAIAA,QAAQ,SAAS,CAAC,gBAAgB,CAC9BQ,2BACA,IAAIC,8BAA8BT;IAE1C;IAEAF,gBAAgB,IAAI,GAAG;IAEvB,OAAOA;AACX;AAEA,MAAMY,qBAAqB;IACvB,MAAMC,eAAeC,8BAA8BZ,CAAAA;QAC/CA,QAAQ,SAAS,CAAC,QAAQ,CAACa;QAC3Bb,QAAQ,SAAS,CAAC,QAAQ,CAACc;QAC3Bd,QAAQ,SAAS,CAAC,QAAQ,CAACe;IAC/B;IAEA,OAAO;WAAIC;QAAwBnB;QAAmBc;KAAa;AACvE;AAEO,MAAMM,8BAA8B,IAChC;WACAP;WACAQ;QACH,IAAInB,cAAuBC,CAAAA;YAEvBA,QAAQ,SAAS,CAAC,gBAAgB,CAACmB,aAAanB,QAAQ,KAAK;YAG7DoB,4BAA4B,QAAQ,CAACpB,QAAQ,SAAS;YAGtDA,QAAQ,SAAS,CAAC,QAAQ,CAACqB;YAG3BrB,QAAQ,SAAS,CAAC,QAAQ,CAACsB;YAG3BC,iCAAiC,QAAQ,CAACvB,QAAQ,SAAS;YAG3DwB,iCAAiC,QAAQ,CAACxB,QAAQ,SAAS;YAC3DyB,oCAAoC,QAAQ,CAACzB,QAAQ,SAAS;QAClE;KACH"}
@@ -1,32 +0,0 @@
1
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
- import type { ITaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
- /**
4
- * RunnableTaskDecorator adds runtime behavior to TaskDefinition:
5
- * - Applies default values (maxIterations, isPrivate, databaseLogs, fields)
6
- * - Validates task ID (must be camelCase)
7
- * - Provides field management methods
8
- */
9
- declare class RunnableTaskDecoratorImpl implements TaskDefinition.Interface {
10
- private decoratee;
11
- constructor(decoratee: TaskDefinition.Interface);
12
- get id(): string;
13
- get title(): string;
14
- get description(): string | undefined;
15
- get isPrivate(): boolean;
16
- get databaseLogs(): boolean;
17
- get maxIterations(): number;
18
- get selfCleanup(): import("@webiny/api-core/features/task/TaskDefinition/abstractions").ISelfCleanup | undefined;
19
- get createInputValidation(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskCreateInputValidationParams) => import("@webiny/api/types").GenericRecord<PropertyKey, import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>> | import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>) | undefined;
20
- get run(): (params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskRunParams<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskResult<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
21
- get onBeforeTrigger(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskBeforeTriggerParams<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput>) => Promise<void>) | undefined;
22
- get onDone(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
23
- get onError(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
24
- get onAbort(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
25
- get onMaxIterations(): ((params: import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskLifecycleHook<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>) => Promise<void>) | undefined;
26
- private validate;
27
- getTask(): ITaskDefinition;
28
- }
29
- export declare const RunnableTaskDecorator: typeof RunnableTaskDecoratorImpl & {
30
- __abstraction: import("@webiny/di").Abstraction<ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
31
- };
32
- export {};
@@ -1,69 +0,0 @@
1
- import camelCase from "lodash/camelCase.js";
2
- import error from "@webiny/error";
3
- import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
- const DEFAULT_MAX_ITERATIONS = 50;
5
- class RunnableTaskDecoratorImpl {
6
- constructor(decoratee){
7
- this.decoratee = decoratee;
8
- this.validate();
9
- }
10
- get id() {
11
- return this.decoratee.id;
12
- }
13
- get title() {
14
- return this.decoratee.title;
15
- }
16
- get description() {
17
- return this.decoratee.description;
18
- }
19
- get isPrivate() {
20
- return this.decoratee.isPrivate ?? false;
21
- }
22
- get databaseLogs() {
23
- return this.decoratee.databaseLogs ?? false;
24
- }
25
- get maxIterations() {
26
- return this.decoratee.maxIterations || DEFAULT_MAX_ITERATIONS;
27
- }
28
- get selfCleanup() {
29
- return this.decoratee.selfCleanup;
30
- }
31
- get createInputValidation() {
32
- return this.decoratee.createInputValidation;
33
- }
34
- get run() {
35
- return this.decoratee.run.bind(this.decoratee);
36
- }
37
- get onBeforeTrigger() {
38
- return this.decoratee.onBeforeTrigger?.bind(this.decoratee);
39
- }
40
- get onDone() {
41
- return this.decoratee.onDone?.bind(this.decoratee);
42
- }
43
- get onError() {
44
- return this.decoratee.onError?.bind(this.decoratee);
45
- }
46
- get onAbort() {
47
- return this.decoratee.onAbort?.bind(this.decoratee);
48
- }
49
- get onMaxIterations() {
50
- return this.decoratee.onMaxIterations?.bind(this.decoratee);
51
- }
52
- validate() {
53
- if (camelCase(this.decoratee.id) !== this.decoratee.id) {
54
- const message = `Task ID "${this.decoratee.id}" is invalid. It must be in camelCase format, for example: "myCustomTask".`;
55
- console.log(message);
56
- throw new error(message);
57
- }
58
- }
59
- getTask() {
60
- return this;
61
- }
62
- }
63
- const RunnableTaskDecorator = TaskDefinition.createDecorator({
64
- decorator: RunnableTaskDecoratorImpl,
65
- dependencies: []
66
- });
67
- export { RunnableTaskDecorator };
68
-
69
- //# sourceMappingURL=RunnableTaskDecorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api/decorators/RunnableTaskDecorator.js","sources":["../../../src/api/decorators/RunnableTaskDecorator.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase.js\";\nimport WebinyError from \"@webiny/error\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { ITaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nconst DEFAULT_MAX_ITERATIONS = 50;\n\n/**\n * RunnableTaskDecorator adds runtime behavior to TaskDefinition:\n * - Applies default values (maxIterations, isPrivate, databaseLogs, fields)\n * - Validates task ID (must be camelCase)\n * - Provides field management methods\n */\nclass RunnableTaskDecoratorImpl implements TaskDefinition.Interface {\n constructor(private decoratee: TaskDefinition.Interface) {\n this.validate();\n }\n\n // Delegate simple properties\n get id() {\n return this.decoratee.id;\n }\n\n get title() {\n return this.decoratee.title;\n }\n\n get description() {\n return this.decoratee.description;\n }\n\n // Apply default values\n get isPrivate() {\n return this.decoratee.isPrivate ?? false;\n }\n\n get databaseLogs() {\n return this.decoratee.databaseLogs ?? false;\n }\n\n get maxIterations() {\n return this.decoratee.maxIterations || DEFAULT_MAX_ITERATIONS;\n }\n\n get selfCleanup() {\n return this.decoratee.selfCleanup;\n }\n\n get createInputValidation() {\n return this.decoratee.createInputValidation;\n }\n\n // Delegate lifecycle methods (bind to preserve context)\n get run() {\n return this.decoratee.run.bind(this.decoratee);\n }\n\n get onBeforeTrigger() {\n return this.decoratee.onBeforeTrigger?.bind(this.decoratee);\n }\n\n get onDone() {\n return this.decoratee.onDone?.bind(this.decoratee);\n }\n\n get onError() {\n return this.decoratee.onError?.bind(this.decoratee);\n }\n\n get onAbort() {\n return this.decoratee.onAbort?.bind(this.decoratee);\n }\n\n get onMaxIterations() {\n return this.decoratee.onMaxIterations?.bind(this.decoratee);\n }\n\n // Validation logic\n private validate(): void {\n if (camelCase(this.decoratee.id) !== this.decoratee.id) {\n const message = `Task ID \"${this.decoratee.id}\" is invalid. It must be in camelCase format, for example: \"myCustomTask\".`;\n console.log(message);\n throw new WebinyError(message);\n }\n }\n\n // Method to get the underlying task (for compatibility with existing code)\n public getTask(): ITaskDefinition {\n return this;\n }\n}\n\nexport const RunnableTaskDecorator = TaskDefinition.createDecorator({\n decorator: RunnableTaskDecoratorImpl,\n dependencies: []\n});\n"],"names":["DEFAULT_MAX_ITERATIONS","RunnableTaskDecoratorImpl","decoratee","camelCase","message","console","WebinyError","RunnableTaskDecorator","TaskDefinition"],"mappings":";;;AAKA,MAAMA,yBAAyB;AAQ/B,MAAMC;IACF,YAAoBC,SAAmC,CAAE;aAArCA,SAAS,GAATA;QAChB,IAAI,CAAC,QAAQ;IACjB;IAGA,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;IAC5B;IAEA,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK;IAC/B;IAEA,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW;IACrC;IAGA,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI;IACvC;IAEA,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI;IAC1C;IAEA,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,IAAIF;IAC3C;IAEA,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW;IACrC;IAEA,IAAI,wBAAwB;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB;IAC/C;IAGA,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;IACjD;IAEA,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,SAAS;IAC9D;IAEA,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,SAAS;IACrD;IAEA,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS;IACtD;IAEA,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS;IACtD;IAEA,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,SAAS;IAC9D;IAGQ,WAAiB;QACrB,IAAIG,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;YACpD,MAAMC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,0EAA0E,CAAC;YACzHC,QAAQ,GAAG,CAACD;YACZ,MAAM,IAAIE,MAAYF;QAC1B;IACJ;IAGO,UAA2B;QAC9B,OAAO,IAAI;IACf;AACJ;AAEO,MAAMG,wBAAwBC,eAAe,eAAe,CAAC;IAChE,WAAWP;IACX,cAAc,EAAE;AACpB"}