@webiny/background-tasks 6.4.11 → 6.6.0-alpha.1

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 (176) 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/TaskDetail/components/TaskDetailDrawer.js +6 -0
  11. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -1
  12. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +1 -1
  13. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -1
  14. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +2 -0
  15. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +3 -1
  16. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -1
  17. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +44 -24
  18. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
  19. package/api/BackgroundTasksFeature.d.ts +4 -0
  20. package/api/BackgroundTasksFeature.js +61 -0
  21. package/api/BackgroundTasksFeature.js.map +1 -0
  22. package/api/TasksCrud.d.ts +10 -0
  23. package/api/TasksCrud.js +5 -0
  24. package/api/TasksCrud.js.map +1 -0
  25. package/api/abstractions/Timer.d.ts +1 -0
  26. package/api/abstractions/Timer.js +0 -0
  27. package/api/abstractions/index.d.ts +1 -0
  28. package/api/abstractions/index.js +1 -0
  29. package/api/crud/cleanupTaskSubtree.d.ts +2 -2
  30. package/api/crud/cleanupTaskSubtree.js +8 -7
  31. package/api/crud/cleanupTaskSubtree.js.map +1 -1
  32. package/api/crud/crud.tasks.d.ts +3 -2
  33. package/api/crud/crud.tasks.js +37 -37
  34. package/api/crud/crud.tasks.js.map +1 -1
  35. package/api/crud/definition.tasks.d.ts +3 -2
  36. package/api/crud/definition.tasks.js +3 -3
  37. package/api/crud/definition.tasks.js.map +1 -1
  38. package/api/crud/service.tasks.d.ts +3 -2
  39. package/api/crud/service.tasks.js +25 -21
  40. package/api/crud/service.tasks.js.map +1 -1
  41. package/api/decorators/RunnableTaskDecorator.d.ts +3 -2
  42. package/api/decorators/RunnableTaskDecorator.js +7 -8
  43. package/api/decorators/RunnableTaskDecorator.js.map +1 -1
  44. package/api/decorators/SelfCleaningTaskDecorator.d.ts +6 -3
  45. package/api/decorators/SelfCleaningTaskDecorator.js +14 -5
  46. package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -1
  47. package/api/domain/TaskService.d.ts +12 -0
  48. package/api/domain/TaskService.js +5 -0
  49. package/api/domain/TaskService.js.map +1 -0
  50. package/api/domain/errors.d.ts +10 -0
  51. package/api/domain/errors.js +11 -1
  52. package/api/domain/errors.js.map +1 -1
  53. package/api/features/AbortTask/AbortTaskUseCase.d.ts +2 -3
  54. package/api/features/AbortTask/AbortTaskUseCase.js +3 -3
  55. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -1
  56. package/api/features/AbortTask/feature.d.ts +1 -2
  57. package/api/features/AbortTask/feature.js +3 -2
  58. package/api/features/AbortTask/feature.js.map +1 -1
  59. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +3 -3
  60. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +3 -3
  61. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -1
  62. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +7 -4
  63. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -1
  64. package/api/features/GetTask/GetTaskUseCase.d.ts +3 -3
  65. package/api/features/GetTask/GetTaskUseCase.js +3 -3
  66. package/api/features/GetTask/GetTaskUseCase.js.map +1 -1
  67. package/api/features/GetTask/feature.d.ts +1 -2
  68. package/api/features/GetTask/feature.js +3 -2
  69. package/api/features/GetTask/feature.js.map +1 -1
  70. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +6 -3
  71. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +66 -5
  72. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -1
  73. package/api/features/GetTaskDefinition/abstractions.d.ts +2 -1
  74. package/api/features/GetTaskDefinition/abstractions.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/TaskController/TaskController.d.ts +2 -2
  82. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +3 -3
  83. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -1
  84. package/api/features/TaskExecutionContext/abstractions.d.ts +3 -3
  85. package/api/features/TaskExecutionContext/abstractions.js.map +1 -1
  86. package/api/features/TaskHandlerResolver/TaskHandlerResolver.d.ts +12 -0
  87. package/api/features/TaskHandlerResolver/TaskHandlerResolver.js +19 -0
  88. package/api/features/TaskHandlerResolver/TaskHandlerResolver.js.map +1 -0
  89. package/api/features/TaskHandlerResolver/abstractions.d.ts +17 -0
  90. package/api/features/TaskHandlerResolver/abstractions.js +5 -0
  91. package/api/features/TaskHandlerResolver/abstractions.js.map +1 -0
  92. package/api/features/TaskHandlerResolver/feature.d.ts +9 -0
  93. package/api/features/TaskHandlerResolver/feature.js +11 -0
  94. package/api/features/TaskHandlerResolver/feature.js.map +1 -0
  95. package/api/features/TaskHandlerResolver/index.d.ts +2 -0
  96. package/api/features/TaskHandlerResolver/index.js +2 -0
  97. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +2 -3
  98. package/api/features/TriggerTask/TriggerTaskUseCase.js +3 -3
  99. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -1
  100. package/api/features/TriggerTask/feature.d.ts +1 -2
  101. package/api/features/TriggerTask/feature.js +3 -2
  102. package/api/features/TriggerTask/feature.js.map +1 -1
  103. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +3 -2
  104. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -1
  105. package/api/graphql/BackgroundTasksContextualSchema.d.ts +21 -0
  106. package/api/graphql/BackgroundTasksContextualSchema.js +369 -0
  107. package/api/graphql/BackgroundTasksContextualSchema.js.map +1 -0
  108. package/api/graphql/checkPermissions.js +2 -1
  109. package/api/graphql/checkPermissions.js.map +1 -1
  110. package/api/graphql/utils.d.ts +3 -3
  111. package/api/graphql/utils.js +1 -1
  112. package/api/graphql/utils.js.map +1 -1
  113. package/api/handler/types.d.ts +0 -2
  114. package/api/index.d.ts +10 -3
  115. package/api/index.js +9 -3
  116. package/api/response/DatabaseResponse.js +1 -1
  117. package/api/response/DatabaseResponse.js.map +1 -1
  118. package/api/runner/TaskControl.d.ts +25 -1
  119. package/api/runner/TaskControl.js +30 -17
  120. package/api/runner/TaskControl.js.map +1 -1
  121. package/api/runner/TaskManager.d.ts +12 -1
  122. package/api/runner/TaskManager.js +8 -6
  123. package/api/runner/TaskManager.js.map +1 -1
  124. package/api/runner/TaskManagerStore.d.ts +10 -2
  125. package/api/runner/TaskManagerStore.js +5 -3
  126. package/api/runner/TaskManagerStore.js.map +1 -1
  127. package/api/runner/TaskRunner.d.ts +3 -3
  128. package/api/runner/TaskRunner.js +25 -4
  129. package/api/runner/TaskRunner.js.map +1 -1
  130. package/api/runner/abstractions/TaskRunner.d.ts +2 -2
  131. package/api/service/createService.d.ts +3 -3
  132. package/api/service/createService.js +5 -10
  133. package/api/service/createService.js.map +1 -1
  134. package/api/service/index.d.ts +1 -4
  135. package/api/service/index.js +1 -12
  136. package/api/tasks/testingRunTask.d.ts +10 -2
  137. package/api/tasks/testingRunTask.js +10 -3
  138. package/api/tasks/testingRunTask.js.map +1 -1
  139. package/api/types.d.ts +2 -2
  140. package/api/types.js.map +1 -1
  141. package/package.json +28 -24
  142. package/testing/index.d.ts +3 -0
  143. package/testing/index.js +2 -0
  144. package/testing/mockTaskTriggerTransportPlugin.d.ts +2 -0
  145. package/testing/mockTaskTriggerTransportPlugin.js +18 -0
  146. package/testing/mockTaskTriggerTransportPlugin.js.map +1 -0
  147. package/testing/runner.d.ts +19 -0
  148. package/testing/runner.js +44 -0
  149. package/testing/runner.js.map +1 -0
  150. package/api/context.d.ts +0 -2
  151. package/api/context.js +0 -66
  152. package/api/context.js.map +0 -1
  153. package/api/graphql/BackgroundTaskSettingsSchema.d.ts +0 -2
  154. package/api/graphql/BackgroundTaskSettingsSchema.js +0 -84
  155. package/api/graphql/BackgroundTaskSettingsSchema.js.map +0 -1
  156. package/api/graphql/index.d.ts +0 -2
  157. package/api/graphql/index.js +0 -301
  158. package/api/graphql/index.js.map +0 -1
  159. package/api/handler/index.d.ts +0 -6
  160. package/api/handler/index.js +0 -55
  161. package/api/handler/index.js.map +0 -1
  162. package/api/handler/register.d.ts +0 -1
  163. package/api/handler/register.js +0 -15
  164. package/api/handler/register.js.map +0 -1
  165. package/api/plugins/TaskServicePlugin.d.ts +0 -19
  166. package/api/plugins/TaskServicePlugin.js +0 -13
  167. package/api/plugins/TaskServicePlugin.js.map +0 -1
  168. package/api/plugins/index.d.ts +0 -1
  169. package/api/plugins/index.js +0 -1
  170. package/api/service/EventBridgeEventTransportPlugin.d.ts +0 -16
  171. package/api/service/EventBridgeEventTransportPlugin.js +0 -52
  172. package/api/service/EventBridgeEventTransportPlugin.js.map +0 -1
  173. package/api/service/StepFunctionServicePlugin.d.ts +0 -25
  174. package/api/service/StepFunctionServicePlugin.js +0 -77
  175. package/api/service/StepFunctionServicePlugin.js.map +0 -1
  176. package/api/service/index.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { ITimer } from "@webiny/handler-aws";
1
+ import type { Timer } from "../../../api/abstractions/Timer.js";
2
2
  import type { ITaskManagerStore } from "../../../api/runner/abstractions/TaskManagerStore.js";
3
3
  import type { ITaskRunner } from "../../../api/runner/abstractions/TaskRunner.js";
4
4
  import type { ITaskResponse } from "../../../api/response/abstractions/index.js";
@@ -12,11 +12,11 @@ import type { ITaskResponse } from "../../../api/response/abstractions/index.js"
12
12
  export interface ITaskExecutionContext {
13
13
  readonly store: ITaskManagerStore;
14
14
  readonly runner: ITaskRunner;
15
- readonly timer: ITimer;
15
+ readonly timer: Timer.Interface;
16
16
  readonly response: ITaskResponse;
17
17
  setStore(store: ITaskManagerStore): void;
18
18
  setRunner(runner: ITaskRunner): void;
19
- setTimer(timer: ITimer): void;
19
+ setTimer(timer: Timer.Interface): void;
20
20
  setResponse(response: ITaskResponse): void;
21
21
  clear(): void;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api/features/TaskExecutionContext/abstractions.js","sources":["../../../../src/api/features/TaskExecutionContext/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskManagerStore } from \"~/api/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/api/runner/abstractions/TaskRunner.js\";\nimport type { ITaskResponse } from \"~/api/response/abstractions/index.js\";\n\n/**\n * TaskExecutionContext holds runtime state for the currently executing task.\n * Properties are set by TaskRunner before task execution.\n *\n * This is registered as a singleton in the DI container with empty values,\n * then populated at runtime by TaskControl before executing each task.\n */\nexport interface ITaskExecutionContext {\n // Getters - may throw if not set\n readonly store: ITaskManagerStore;\n readonly runner: ITaskRunner;\n readonly timer: ITimer;\n readonly response: ITaskResponse;\n\n // Setters - called by TaskControl\n setStore(store: ITaskManagerStore): void;\n setRunner(runner: ITaskRunner): void;\n setTimer(timer: ITimer): void;\n setResponse(response: ITaskResponse): void;\n\n // Clear after execution\n clear(): void;\n}\n\nexport const TaskExecutionContext =\n createAbstraction<ITaskExecutionContext>(\"TaskExecutionContext\");\n\nexport namespace TaskExecutionContext {\n export type Interface = ITaskExecutionContext;\n}\n"],"names":["TaskExecutionContext","createAbstraction"],"mappings":";AA8BO,MAAMA,uBACTC,kBAAyC"}
1
+ {"version":3,"file":"api/features/TaskExecutionContext/abstractions.js","sources":["../../../../src/api/features/TaskExecutionContext/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Timer } from \"~/api/abstractions/Timer.js\";\nimport type { ITaskManagerStore } from \"~/api/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/api/runner/abstractions/TaskRunner.js\";\nimport type { ITaskResponse } from \"~/api/response/abstractions/index.js\";\n\n/**\n * TaskExecutionContext holds runtime state for the currently executing task.\n * Properties are set by TaskRunner before task execution.\n *\n * This is registered as a singleton in the DI container with empty values,\n * then populated at runtime by TaskControl before executing each task.\n */\nexport interface ITaskExecutionContext {\n // Getters - may throw if not set\n readonly store: ITaskManagerStore;\n readonly runner: ITaskRunner;\n readonly timer: Timer.Interface;\n readonly response: ITaskResponse;\n\n // Setters - called by TaskControl\n setStore(store: ITaskManagerStore): void;\n setRunner(runner: ITaskRunner): void;\n setTimer(timer: Timer.Interface): void;\n setResponse(response: ITaskResponse): void;\n\n // Clear after execution\n clear(): void;\n}\n\nexport const TaskExecutionContext =\n createAbstraction<ITaskExecutionContext>(\"TaskExecutionContext\");\n\nexport namespace TaskExecutionContext {\n export type Interface = ITaskExecutionContext;\n}\n"],"names":["TaskExecutionContext","createAbstraction"],"mappings":";AA8BO,MAAMA,uBACTC,kBAAyC"}
@@ -0,0 +1,12 @@
1
+ import type { Container, Constructor } from "@webiny/di";
2
+ import type { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ import { TaskHandlerResolver as Abstraction } from "./abstractions.js";
4
+ declare class ContainerTaskHandlerResolver implements Abstraction.Interface {
5
+ private readonly container;
6
+ constructor(container: Container);
7
+ resolve<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(handler: Constructor<TaskDefinition.Handler<I, O>>): TaskDefinition.Handler<I, O>;
8
+ }
9
+ export declare const TaskHandlerResolver: typeof ContainerTaskHandlerResolver & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITaskHandlerResolver>;
11
+ };
12
+ export {};
@@ -0,0 +1,19 @@
1
+ import { RequestContainer } from "@webiny/event-handler-core/features/events/RequestContainer.js";
2
+ import { TaskHandlerResolver } from "./abstractions.js";
3
+ class ContainerTaskHandlerResolver {
4
+ constructor(container){
5
+ this.container = container;
6
+ }
7
+ resolve(handler) {
8
+ return this.container.resolveImplementation(handler);
9
+ }
10
+ }
11
+ const TaskHandlerResolver_TaskHandlerResolver = TaskHandlerResolver.createImplementation({
12
+ implementation: ContainerTaskHandlerResolver,
13
+ dependencies: [
14
+ RequestContainer
15
+ ]
16
+ });
17
+ export { TaskHandlerResolver_TaskHandlerResolver as TaskHandlerResolver };
18
+
19
+ //# sourceMappingURL=TaskHandlerResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskHandlerResolver/TaskHandlerResolver.js","sources":["../../../../src/api/features/TaskHandlerResolver/TaskHandlerResolver.ts"],"sourcesContent":["import type { Container, Constructor } from \"@webiny/di\";\nimport { RequestContainer } from \"@webiny/event-handler-core/features/events/RequestContainer.js\";\nimport type { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskHandlerResolver as Abstraction } from \"./abstractions.js\";\n\nclass ContainerTaskHandlerResolver implements Abstraction.Interface {\n public constructor(private readonly container: Container) {}\n\n public resolve<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(handler: Constructor<TaskDefinition.Handler<I, O>>): TaskDefinition.Handler<I, O> {\n // `resolveImplementation` builds the class from its own dependency metadata and runs it\n // through the normal resolution path, so decorators registered against the handler still\n // apply. It deliberately ignores registrations, which is what we want here: the definition\n // names the class directly and nothing registers handlers against an abstraction.\n return this.container.resolveImplementation(handler);\n }\n}\n\nexport const TaskHandlerResolver = Abstraction.createImplementation({\n implementation: ContainerTaskHandlerResolver,\n dependencies: [RequestContainer]\n});\n"],"names":["ContainerTaskHandlerResolver","container","handler","TaskHandlerResolver","Abstraction","RequestContainer"],"mappings":";;AAKA,MAAMA;IACF,YAAoCC,SAAoB,CAAE;aAAtBA,SAAS,GAATA;IAAuB;IAEpD,QAGLC,OAAkD,EAAgC;QAKhF,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAACA;IAChD;AACJ;AAEO,MAAMC,0CAAsBC,oBAAAA,oBAAgC,CAAC;IAChE,gBAAgBJ;IAChB,cAAc;QAACK;KAAiB;AACpC"}
@@ -0,0 +1,17 @@
1
+ import type { Constructor } from "@webiny/di";
2
+ import type { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export interface ITaskHandlerResolver {
4
+ resolve<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(handler: Constructor<TaskDefinition.Handler<I, O>>): TaskDefinition.Handler<I, O>;
5
+ }
6
+ /**
7
+ * Builds the behaviour half of a task on demand.
8
+ *
9
+ * Something has to turn `definition.handler` (a class) into an instance, and that needs the
10
+ * container. Rather than injecting the container into a use case — which is the service-locator
11
+ * pattern we keep out of DI classes — it lives behind this one narrow abstraction. Everything else
12
+ * depends on `resolve(handler)` and stays testable with a stub.
13
+ */
14
+ export declare const TaskHandlerResolver: import("@webiny/di").Abstraction<ITaskHandlerResolver>;
15
+ export declare namespace TaskHandlerResolver {
16
+ type Interface = ITaskHandlerResolver;
17
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const TaskHandlerResolver = createAbstraction("Tasks/TaskHandlerResolver");
3
+ export { TaskHandlerResolver };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskHandlerResolver/abstractions.js","sources":["../../../../src/api/features/TaskHandlerResolver/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Constructor } from \"@webiny/di\";\nimport type { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface ITaskHandlerResolver {\n resolve<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n handler: Constructor<TaskDefinition.Handler<I, O>>\n ): TaskDefinition.Handler<I, O>;\n}\n\n/**\n * Builds the behaviour half of a task on demand.\n *\n * Something has to turn `definition.handler` (a class) into an instance, and that needs the\n * container. Rather than injecting the container into a use case — which is the service-locator\n * pattern we keep out of DI classes — it lives behind this one narrow abstraction. Everything else\n * depends on `resolve(handler)` and stays testable with a stub.\n */\nexport const TaskHandlerResolver = createAbstraction<ITaskHandlerResolver>(\n \"Tasks/TaskHandlerResolver\"\n);\n\nexport namespace TaskHandlerResolver {\n export type Interface = ITaskHandlerResolver;\n}\n"],"names":["TaskHandlerResolver","createAbstraction"],"mappings":";AAqBO,MAAMA,sBAAsBC,kBAC/B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Must be registered on the per-request container, which is what `registerApiRequestStack` does via
3
+ * `BackgroundTasksFeature`. The resolver depends on `RequestContainer`; registered on the root it
4
+ * would capture the root container and never see per-request registrations.
5
+ */
6
+ export declare const TaskHandlerResolverFeature: {
7
+ name: string;
8
+ register(container: import("@webiny/di").Container): void;
9
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { TaskHandlerResolver } from "./TaskHandlerResolver.js";
3
+ const TaskHandlerResolverFeature = createFeature({
4
+ name: "TaskHandlerResolver",
5
+ register (container) {
6
+ container.register(TaskHandlerResolver);
7
+ }
8
+ });
9
+ export { TaskHandlerResolverFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskHandlerResolver/feature.js","sources":["../../../../src/api/features/TaskHandlerResolver/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TaskHandlerResolver } from \"./TaskHandlerResolver.js\";\n\n/**\n * Must be registered on the per-request container, which is what `registerApiRequestStack` does via\n * `BackgroundTasksFeature`. The resolver depends on `RequestContainer`; registered on the root it\n * would capture the root container and never see per-request registrations.\n */\nexport const TaskHandlerResolverFeature = createFeature({\n name: \"TaskHandlerResolver\",\n register(container) {\n container.register(TaskHandlerResolver);\n }\n});\n"],"names":["TaskHandlerResolverFeature","createFeature","container","TaskHandlerResolver"],"mappings":";;AAQO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { TaskHandlerResolver } from "./abstractions.js";
2
+ export { TaskHandlerResolverFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { TaskHandlerResolver } from "./abstractions.js";
2
+ export { TaskHandlerResolverFeature } from "./feature.js";
@@ -2,9 +2,8 @@ import { Result } from "@webiny/feature/api";
2
2
  import { TriggerTaskUseCase as UseCaseAbstraction } from "./abstractions.js";
3
3
  import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
4
  import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
5
- import type { Context } from "../../../api/types.js";
6
5
  export declare class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {
7
- private context;
8
- constructor(context: Context);
6
+ private taskService;
7
+ constructor(taskService: TaskService.Interface);
9
8
  execute<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: UseCaseAbstraction.Params<I>): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>>;
10
9
  }
@@ -1,9 +1,9 @@
1
1
  class TriggerTaskUseCaseImpl {
2
- constructor(context){
3
- this.context = context;
2
+ constructor(taskService){
3
+ this.taskService = taskService;
4
4
  }
5
5
  async execute(params) {
6
- const result = await this.context.tasks.trigger(params);
6
+ const result = await this.taskService.trigger(params);
7
7
  return result;
8
8
  }
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api/features/TriggerTask/TriggerTaskUseCase.js","sources":["../../../../src/api/features/TriggerTask/TriggerTaskUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type { Context } from \"~/api/types.js\";\n\nexport class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private context: Context) {}\n\n public async execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: UseCaseAbstraction.Params<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>> {\n const result = await this.context.tasks.trigger<I, O>(params);\n\n return result as unknown as Promise<\n Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>\n >;\n }\n}\n"],"names":["TriggerTaskUseCaseImpl","context","params","result"],"mappings":"AAMO,MAAMA;IACT,YAA2BC,OAAgB,CAAE;aAAlBA,OAAO,GAAPA;IAAmB;IAE9C,MAAa,QAITC,MAAoC,EAC6B;QACjE,MAAMC,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAOD;QAEtD,OAAOC;IAGX;AACJ"}
1
+ {"version":3,"file":"api/features/TriggerTask/TriggerTaskUseCase.js","sources":["../../../../src/api/features/TriggerTask/TriggerTaskUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nexport class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private taskService: TaskService.Interface) {}\n\n public async execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: UseCaseAbstraction.Params<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>> {\n const result = await this.taskService.trigger<I, O>(params);\n\n return result as unknown as Promise<\n Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>\n >;\n }\n}\n"],"names":["TriggerTaskUseCaseImpl","taskService","params","result"],"mappings":"AAKO,MAAMA;IACT,YAA2BC,WAAkC,CAAE;aAApCA,WAAW,GAAXA;IAAqC;IAEhE,MAAa,QAITC,MAAoC,EAC6B;QACjE,MAAMC,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAOD;QAEpD,OAAOC;IAGX;AACJ"}
@@ -1,5 +1,4 @@
1
- import type { Context } from "../../../api/types.js";
2
1
  export declare const TriggerTaskFeature: {
3
2
  name: string;
4
- register(container: import("@webiny/di").Container, context: Context): void;
3
+ register(container: import("@webiny/di").Container): void;
5
4
  };
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { TriggerTaskUseCase } from "./abstractions.js";
3
3
  import { TriggerTaskUseCaseImpl } from "./TriggerTaskUseCase.js";
4
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
4
5
  const TriggerTaskFeature = createFeature({
5
6
  name: "TriggerTask",
6
- register (container, context) {
7
- container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context));
7
+ register (container) {
8
+ container.registerFactory(TriggerTaskUseCase, ()=>new TriggerTaskUseCaseImpl(container.resolve(TaskService)));
8
9
  }
9
10
  });
10
11
  export { TriggerTaskFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"api/features/TriggerTask/feature.js","sources":["../../../../src/api/features/TriggerTask/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/api/features/TriggerTask/TriggerTaskUseCase.js\";\nimport type { Context } from \"~/api/types.js\";\n\nexport const TriggerTaskFeature = createFeature<Context>({\n name: \"TriggerTask\",\n register(container, context) {\n container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context!));\n }\n});\n"],"names":["TriggerTaskFeature","createFeature","container","context","TriggerTaskUseCase","TriggerTaskUseCaseImpl"],"mappings":";;;AAKO,MAAMA,qBAAqBC,cAAuB;IACrD,MAAM;IACN,UAASC,SAAS,EAAEC,OAAO;QACvBD,UAAU,gBAAgB,CAACE,oBAAoB,IAAIC,uBAAuBF;IAC9E;AACJ"}
1
+ {"version":3,"file":"api/features/TriggerTask/feature.js","sources":["../../../../src/api/features/TriggerTask/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/api/features/TriggerTask/TriggerTaskUseCase.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nexport const TriggerTaskFeature = createFeature({\n name: \"TriggerTask\",\n register(container) {\n container.registerFactory(TriggerTaskUseCase, () => {\n return new TriggerTaskUseCaseImpl(container.resolve(TaskService));\n });\n }\n});\n"],"names":["TriggerTaskFeature","createFeature","container","TriggerTaskUseCase","TriggerTaskUseCaseImpl","TaskService"],"mappings":";;;;AAKO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,eAAe,CAACC,oBAAoB,IACnC,IAAIC,uBAAuBF,UAAU,OAAO,CAACG;IAE5D;AACJ"}
@@ -16,7 +16,7 @@ class UpdateBackgroundTaskSettingsRepositoryImpl {
16
16
  this.getLatestRevisionRepository = getLatestRevisionRepository;
17
17
  this.updateEntryRepository = updateEntryRepository;
18
18
  this.updateEntryDataFactory = updateEntryDataFactory;
19
- this.defaultRetentionDays = buildParams.get("BackgroundTasks.RetentionDays") ?? BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;
19
+ this.defaultRetentionDays = buildParams.get("BackgroundTasks.RetentionDays") || BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;
20
20
  }
21
21
  async execute(input) {
22
22
  try {
@@ -39,8 +39,9 @@ class UpdateBackgroundTaskSettingsRepositoryImpl {
39
39
  }, entryResult.value);
40
40
  const updateResult = await this.updateEntryRepository.execute(model, entry);
41
41
  if (updateResult.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));
42
+ const retentionDays = null != entry.values.retentionDays ? entry.values.retentionDays : this.defaultRetentionDays;
42
43
  const settings = {
43
- retentionDays: entry.values.retentionDays ?? this.defaultRetentionDays
44
+ retentionDays
44
45
  };
45
46
  return Result.ok(settings);
46
47
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createCacheKey } from \"@webiny/utils\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { GetLatestRevisionByEntryIdRepository } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { UpdateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { UpdateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { BuildParams } from \"@webiny/api-core/features/buildParams/index.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport {\n UpdateBackgroundTaskSettingsRepository as RepositoryAbstraction,\n type IUpdateBackgroundTaskSettingsInput\n} from \"./abstractions.js\";\nimport {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskPersistenceError\n} from \"~/api/domain/errors.js\";\nimport {\n BACKGROUND_TASK_SETTINGS_MODEL_ID,\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS\n} from \"~/api/domain/constants.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\n\ninterface BackgroundTaskSettingsValues {\n retentionDays?: number | null;\n}\n\nclass UpdateBackgroundTaskSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n private readonly defaultRetentionDays: number;\n\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getSettingsRepository: GetBackgroundTaskSettingsRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly updateEntryRepository: UpdateEntryRepository.Interface,\n private readonly updateEntryDataFactory: UpdateEntryDataFactory.Interface,\n buildParams: BuildParams.Interface\n ) {\n this.defaultRetentionDays =\n buildParams.get<number>(\"BackgroundTasks.RetentionDays\") ??\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;\n }\n\n async execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, RepositoryAbstraction.Error>> {\n try {\n /* Ensure the singleton entry exists (creates if missing). */\n const getResult = await this.getSettingsRepository.execute();\n if (getResult.isFail()) {\n return getResult;\n }\n\n const modelResult = await this.getModelRepository.execute(\n BACKGROUND_TASK_SETTINGS_MODEL_ID\n );\n if (modelResult.isFail()) {\n return Result.fail(\n new BackgroundTaskModelNotFoundError(BACKGROUND_TASK_SETTINGS_MODEL_ID)\n );\n }\n\n const model = modelResult.value;\n const singletonId = createCacheKey(model.modelId);\n const entryId = `${singletonId}#0001`;\n\n const entryResult =\n await this.getLatestRevisionRepository.execute<BackgroundTaskSettingsValues>(\n model,\n { id: entryId }\n );\n\n if (entryResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(entryResult.error));\n }\n\n /* Store null when the value matches the default so the default stays in control. */\n const storedValue =\n input.retentionDays === this.defaultRetentionDays ? null : input.retentionDays;\n\n const { entry } =\n await this.updateEntryDataFactory.create<BackgroundTaskSettingsValues>(\n model,\n {\n values: {\n retentionDays: storedValue\n }\n },\n entryResult.value\n );\n\n const updateResult = await this.updateEntryRepository.execute(model, entry);\n if (updateResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));\n }\n\n const settings: IBackgroundTaskSettings = {\n retentionDays: entry.values.retentionDays ?? this.defaultRetentionDays\n };\n\n return Result.ok(settings);\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n}\n\nexport const UpdateBackgroundTaskSettingsRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetBackgroundTaskSettingsRepository,\n GetLatestRevisionByEntryIdRepository,\n UpdateEntryRepository,\n UpdateEntryDataFactory,\n BuildParams\n ]\n});\n"],"names":["UpdateBackgroundTaskSettingsRepositoryImpl","getModelRepository","getSettingsRepository","getLatestRevisionRepository","updateEntryRepository","updateEntryDataFactory","buildParams","BACKGROUND_TASK_DEFAULT_RETENTION_DAYS","input","getResult","modelResult","BACKGROUND_TASK_SETTINGS_MODEL_ID","Result","BackgroundTaskModelNotFoundError","model","singletonId","createCacheKey","entryId","entryResult","BackgroundTaskPersistenceError","storedValue","entry","updateResult","settings","error","UpdateBackgroundTaskSettingsRepository","RepositoryAbstraction","GetModelRepository","GetBackgroundTaskSettingsRepository","GetLatestRevisionByEntryIdRepository","UpdateEntryRepository","UpdateEntryDataFactory","BuildParams"],"mappings":";;;;;;;;;;;AA0BA,MAAMA;IAGF,YACqBC,kBAAgD,EAChDC,qBAAoE,EACpEC,2BAA2E,EAC3EC,qBAAsD,EACtDC,sBAAwD,EACzEC,WAAkC,CACpC;aANmBL,kBAAkB,GAAlBA;aACAC,qBAAqB,GAArBA;aACAC,2BAA2B,GAA3BA;aACAC,qBAAqB,GAArBA;aACAC,sBAAsB,GAAtBA;QAGjB,IAAI,CAAC,oBAAoB,GACrBC,YAAY,GAAG,CAAS,oCACxBC;IACR;IAEA,MAAM,QACFC,KAAyC,EAC4B;QACrE,IAAI;YAEA,MAAMC,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAC1D,IAAIA,UAAU,MAAM,IAChB,OAAOA;YAGX,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACrDC;YAEJ,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CACd,IAAIC,iCAAiCF;YAI7C,MAAMG,QAAQJ,YAAY,KAAK;YAC/B,MAAMK,cAAcC,eAAeF,MAAM,OAAO;YAChD,MAAMG,UAAU,GAAGF,YAAY,KAAK,CAAC;YAErC,MAAMG,cACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC1CJ,OACA;gBAAE,IAAIG;YAAQ;YAGtB,IAAIC,YAAY,MAAM,IAClB,OAAON,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACD,YAAY,KAAK;YAI5E,MAAME,cACFZ,MAAM,aAAa,KAAK,IAAI,CAAC,oBAAoB,GAAG,OAAOA,MAAM,aAAa;YAElF,MAAM,EAAEa,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCP,OACA;gBACI,QAAQ;oBACJ,eAAeM;gBACnB;YACJ,GACAF,YAAY,KAAK;YAGzB,MAAMI,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,OAAOO;YACrE,IAAIC,aAAa,MAAM,IACnB,OAAOV,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACG,aAAa,KAAK;YAG7E,MAAMC,WAAoC;gBACtC,eAAeF,MAAM,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB;YAC1E;YAEA,OAAOT,OAAO,EAAE,CAACW;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOZ,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACK;QAC3D;IACJ;AACJ;AAEO,MAAMC,gFAAyCC,uCAAAA,oBAA0C,CAAC;IAC7F,gBAAgB1B;IAChB,cAAc;QACV2B;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
1
+ {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createCacheKey } from \"@webiny/utils\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { GetLatestRevisionByEntryIdRepository } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { UpdateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { UpdateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { BuildParams } from \"@webiny/api-core/features/buildParams/index.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport {\n UpdateBackgroundTaskSettingsRepository as RepositoryAbstraction,\n type IUpdateBackgroundTaskSettingsInput\n} from \"./abstractions.js\";\nimport {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskPersistenceError\n} from \"~/api/domain/errors.js\";\nimport {\n BACKGROUND_TASK_SETTINGS_MODEL_ID,\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS\n} from \"~/api/domain/constants.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\n\ninterface BackgroundTaskSettingsValues {\n retentionDays?: number | null;\n}\n\nclass UpdateBackgroundTaskSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n private readonly defaultRetentionDays: number;\n\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getSettingsRepository: GetBackgroundTaskSettingsRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly updateEntryRepository: UpdateEntryRepository.Interface,\n private readonly updateEntryDataFactory: UpdateEntryDataFactory.Interface,\n buildParams: BuildParams.Interface\n ) {\n this.defaultRetentionDays =\n buildParams.get<number>(\"BackgroundTasks.RetentionDays\") ||\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;\n }\n\n async execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, RepositoryAbstraction.Error>> {\n try {\n /* Ensure the singleton entry exists (creates if missing). */\n const getResult = await this.getSettingsRepository.execute();\n if (getResult.isFail()) {\n return getResult;\n }\n\n const modelResult = await this.getModelRepository.execute(\n BACKGROUND_TASK_SETTINGS_MODEL_ID\n );\n if (modelResult.isFail()) {\n return Result.fail(\n new BackgroundTaskModelNotFoundError(BACKGROUND_TASK_SETTINGS_MODEL_ID)\n );\n }\n\n const model = modelResult.value;\n const singletonId = createCacheKey(model.modelId);\n const entryId = `${singletonId}#0001`;\n\n const entryResult =\n await this.getLatestRevisionRepository.execute<BackgroundTaskSettingsValues>(\n model,\n { id: entryId }\n );\n\n if (entryResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(entryResult.error));\n }\n\n /* Store null when the value matches the default so the default stays in control. */\n const storedValue =\n input.retentionDays === this.defaultRetentionDays ? null : input.retentionDays;\n\n const { entry } =\n await this.updateEntryDataFactory.create<BackgroundTaskSettingsValues>(\n model,\n {\n values: {\n retentionDays: storedValue\n }\n },\n entryResult.value\n );\n\n const updateResult = await this.updateEntryRepository.execute(model, entry);\n if (updateResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));\n }\n\n const retentionDays =\n entry.values.retentionDays != null\n ? entry.values.retentionDays\n : this.defaultRetentionDays;\n\n const settings: IBackgroundTaskSettings = {\n retentionDays\n };\n\n return Result.ok(settings);\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n}\n\nexport const UpdateBackgroundTaskSettingsRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetBackgroundTaskSettingsRepository,\n GetLatestRevisionByEntryIdRepository,\n UpdateEntryRepository,\n UpdateEntryDataFactory,\n BuildParams\n ]\n});\n"],"names":["UpdateBackgroundTaskSettingsRepositoryImpl","getModelRepository","getSettingsRepository","getLatestRevisionRepository","updateEntryRepository","updateEntryDataFactory","buildParams","BACKGROUND_TASK_DEFAULT_RETENTION_DAYS","input","getResult","modelResult","BACKGROUND_TASK_SETTINGS_MODEL_ID","Result","BackgroundTaskModelNotFoundError","model","singletonId","createCacheKey","entryId","entryResult","BackgroundTaskPersistenceError","storedValue","entry","updateResult","retentionDays","settings","error","UpdateBackgroundTaskSettingsRepository","RepositoryAbstraction","GetModelRepository","GetBackgroundTaskSettingsRepository","GetLatestRevisionByEntryIdRepository","UpdateEntryRepository","UpdateEntryDataFactory","BuildParams"],"mappings":";;;;;;;;;;;AA0BA,MAAMA;IAGF,YACqBC,kBAAgD,EAChDC,qBAAoE,EACpEC,2BAA2E,EAC3EC,qBAAsD,EACtDC,sBAAwD,EACzEC,WAAkC,CACpC;aANmBL,kBAAkB,GAAlBA;aACAC,qBAAqB,GAArBA;aACAC,2BAA2B,GAA3BA;aACAC,qBAAqB,GAArBA;aACAC,sBAAsB,GAAtBA;QAGjB,IAAI,CAAC,oBAAoB,GACrBC,YAAY,GAAG,CAAS,oCACxBC;IACR;IAEA,MAAM,QACFC,KAAyC,EAC4B;QACrE,IAAI;YAEA,MAAMC,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAC1D,IAAIA,UAAU,MAAM,IAChB,OAAOA;YAGX,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACrDC;YAEJ,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CACd,IAAIC,iCAAiCF;YAI7C,MAAMG,QAAQJ,YAAY,KAAK;YAC/B,MAAMK,cAAcC,eAAeF,MAAM,OAAO;YAChD,MAAMG,UAAU,GAAGF,YAAY,KAAK,CAAC;YAErC,MAAMG,cACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC1CJ,OACA;gBAAE,IAAIG;YAAQ;YAGtB,IAAIC,YAAY,MAAM,IAClB,OAAON,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACD,YAAY,KAAK;YAI5E,MAAME,cACFZ,MAAM,aAAa,KAAK,IAAI,CAAC,oBAAoB,GAAG,OAAOA,MAAM,aAAa;YAElF,MAAM,EAAEa,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCP,OACA;gBACI,QAAQ;oBACJ,eAAeM;gBACnB;YACJ,GACAF,YAAY,KAAK;YAGzB,MAAMI,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,OAAOO;YACrE,IAAIC,aAAa,MAAM,IACnB,OAAOV,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACG,aAAa,KAAK;YAG7E,MAAMC,gBACFF,AAA8B,QAA9BA,MAAM,MAAM,CAAC,aAAa,GACpBA,MAAM,MAAM,CAAC,aAAa,GAC1B,IAAI,CAAC,oBAAoB;YAEnC,MAAMG,WAAoC;gBACtCD;YACJ;YAEA,OAAOX,OAAO,EAAE,CAACY;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOb,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACM;QAC3D;IACJ;AACJ;AAEO,MAAMC,gFAAyCC,uCAAAA,oBAA0C,CAAC;IAC7F,gBAAgB3B;IAChB,cAAc;QACV4B;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,21 @@
1
+ import type { GraphQLSchema } from "graphql";
2
+ import type { IGraphQLContextualSchema } from "@webiny/api-graphql";
3
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/abstractions.js";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
5
+ /**
6
+ * Builds the background-tasks GraphQL schema after context enhancement — the schema shape depends on
7
+ * the per-tenant CMS task/log content models, so it can only be rendered at request time (once the
8
+ * tenant is known and the CMS facade is resolvable). Replaces the legacy `createBackgroundTaskGraphQL`
9
+ * + `createBackgroundTaskSettingsGraphQL` ContextPlugins; the settings schema is merged in here
10
+ * because it extends the task schema's `WebinyBackgroundTaskQuery`/`Mutation` types.
11
+ */
12
+ declare class BackgroundTasksContextualSchemaImpl implements IGraphQLContextualSchema {
13
+ private tenantCtx;
14
+ private identityCtx;
15
+ constructor(tenantCtx: TenantContext.Interface, identityCtx: IdentityContext.Interface);
16
+ build(ctx: Record<string, any>): Promise<GraphQLSchema>;
17
+ }
18
+ export declare const BackgroundTasksContextualSchema: typeof BackgroundTasksContextualSchemaImpl & {
19
+ __abstraction: import("@webiny/di").Abstraction<IGraphQLContextualSchema>;
20
+ };
21
+ export {};