@webiny/tasks 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/context.js +31 -43
  2. package/context.js.map +1 -1
  3. package/crud/TaskLogPrivateModel.js +33 -27
  4. package/crud/TaskLogPrivateModel.js.map +1 -1
  5. package/crud/TaskPrivateModel.js +48 -39
  6. package/crud/TaskPrivateModel.js.map +1 -1
  7. package/crud/cleanupTaskSubtree.js +55 -69
  8. package/crud/cleanupTaskSubtree.js.map +1 -1
  9. package/crud/crud.tasks.js +289 -352
  10. package/crud/crud.tasks.js.map +1 -1
  11. package/crud/definition.tasks.js +13 -16
  12. package/crud/definition.tasks.js.map +1 -1
  13. package/crud/service.tasks.js +119 -155
  14. package/crud/service.tasks.js.map +1 -1
  15. package/decorators/RunnableTaskDecorator.js +61 -77
  16. package/decorators/RunnableTaskDecorator.js.map +1 -1
  17. package/decorators/SelfCleaningTaskDecorator.js +75 -89
  18. package/decorators/SelfCleaningTaskDecorator.js.map +1 -1
  19. package/domain/errors.js +35 -39
  20. package/domain/errors.js.map +1 -1
  21. package/events/TaskAfterCreateEvent.js +8 -5
  22. package/events/TaskAfterCreateEvent.js.map +1 -1
  23. package/events/TaskAfterDeleteEvent.js +8 -5
  24. package/events/TaskAfterDeleteEvent.js.map +1 -1
  25. package/events/TaskAfterUpdateEvent.js +8 -5
  26. package/events/TaskAfterUpdateEvent.js.map +1 -1
  27. package/events/TaskBeforeCreateEvent.js +8 -5
  28. package/events/TaskBeforeCreateEvent.js.map +1 -1
  29. package/events/TaskBeforeDeleteEvent.js +8 -5
  30. package/events/TaskBeforeDeleteEvent.js.map +1 -1
  31. package/events/TaskBeforeUpdateEvent.js +8 -5
  32. package/events/TaskBeforeUpdateEvent.js.map +1 -1
  33. package/events/abstractions.js +7 -36
  34. package/events/abstractions.js.map +1 -1
  35. package/events/index.js +0 -2
  36. package/features/AbortTask/AbortTaskUseCase.js +9 -8
  37. package/features/AbortTask/AbortTaskUseCase.js.map +1 -1
  38. package/features/AbortTask/abstractions.js +2 -1
  39. package/features/AbortTask/abstractions.js.map +1 -1
  40. package/features/AbortTask/feature.js +6 -5
  41. package/features/AbortTask/feature.js.map +1 -1
  42. package/features/AbortTask/index.js +0 -2
  43. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +8 -7
  44. package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -1
  45. package/features/CleanupTaskSubtree/abstractions.js +2 -1
  46. package/features/CleanupTaskSubtree/abstractions.js.map +1 -1
  47. package/features/CleanupTaskSubtree/index.js +0 -2
  48. package/features/GetTask/GetTaskUseCase.js +8 -7
  49. package/features/GetTask/GetTaskUseCase.js.map +1 -1
  50. package/features/GetTask/abstractions.js +2 -1
  51. package/features/GetTask/abstractions.js.map +1 -1
  52. package/features/GetTask/feature.js +6 -5
  53. package/features/GetTask/feature.js.map +1 -1
  54. package/features/GetTask/index.js +0 -2
  55. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +18 -16
  56. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -1
  57. package/features/GetTaskDefinition/abstractions.js +2 -1
  58. package/features/GetTaskDefinition/abstractions.js.map +1 -1
  59. package/features/GetTaskDefinition/feature.js +6 -5
  60. package/features/GetTaskDefinition/feature.js.map +1 -1
  61. package/features/GetTaskDefinition/index.js +0 -2
  62. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -12
  63. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -1
  64. package/features/ListTaskDefinitions/abstractions.js +2 -1
  65. package/features/ListTaskDefinitions/abstractions.js.map +1 -1
  66. package/features/ListTaskDefinitions/feature.js +6 -5
  67. package/features/ListTaskDefinitions/feature.js.map +1 -1
  68. package/features/ListTaskDefinitions/index.js +0 -2
  69. package/features/ListTasks/ListTasksUseCase.js +8 -7
  70. package/features/ListTasks/ListTasksUseCase.js.map +1 -1
  71. package/features/ListTasks/abstractions.js +2 -1
  72. package/features/ListTasks/abstractions.js.map +1 -1
  73. package/features/ListTasks/feature.js +6 -5
  74. package/features/ListTasks/feature.js.map +1 -1
  75. package/features/ListTasks/index.js +0 -2
  76. package/features/TaskController/TaskController.js +60 -60
  77. package/features/TaskController/TaskController.js.map +1 -1
  78. package/features/TaskController/augmentation.js +0 -3
  79. package/features/TaskController/index.js +0 -5
  80. package/features/TaskExecutionContext/TaskExecutionContext.js +38 -45
  81. package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -1
  82. package/features/TaskExecutionContext/abstractions.js +2 -10
  83. package/features/TaskExecutionContext/abstractions.js.map +1 -1
  84. package/features/TaskExecutionContext/feature.js +6 -5
  85. package/features/TaskExecutionContext/feature.js.map +1 -1
  86. package/features/TaskExecutionContext/index.js +0 -2
  87. package/features/TriggerTask/TriggerTaskUseCase.js +9 -8
  88. package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -1
  89. package/features/TriggerTask/abstractions.js +2 -1
  90. package/features/TriggerTask/abstractions.js.map +1 -1
  91. package/features/TriggerTask/feature.js +6 -5
  92. package/features/TriggerTask/feature.js.map +1 -1
  93. package/features/TriggerTask/index.js +0 -2
  94. package/global.js +0 -2
  95. package/graphql/checkPermissions.js +16 -35
  96. package/graphql/checkPermissions.js.map +1 -1
  97. package/graphql/index.js +154 -187
  98. package/graphql/index.js.map +1 -1
  99. package/graphql/utils.js +15 -14
  100. package/graphql/utils.js.map +1 -1
  101. package/handler/index.js +46 -53
  102. package/handler/index.js.map +1 -1
  103. package/handler/register.js +7 -15
  104. package/handler/register.js.map +1 -1
  105. package/handler/types.js +0 -3
  106. package/index.js +2 -4
  107. package/package.json +17 -17
  108. package/plugins/TaskServicePlugin.js +9 -6
  109. package/plugins/TaskServicePlugin.js.map +1 -1
  110. package/plugins/index.js +0 -2
  111. package/response/DatabaseResponse.js +113 -132
  112. package/response/DatabaseResponse.js.map +1 -1
  113. package/response/Response.js +78 -96
  114. package/response/Response.js.map +1 -1
  115. package/response/ResponseAbortedResult.js +8 -7
  116. package/response/ResponseAbortedResult.js.map +1 -1
  117. package/response/ResponseContinueResult.js +12 -14
  118. package/response/ResponseContinueResult.js.map +1 -1
  119. package/response/ResponseDoneResult.js +10 -9
  120. package/response/ResponseDoneResult.js.map +1 -1
  121. package/response/ResponseErrorResult.js +9 -8
  122. package/response/ResponseErrorResult.js.map +1 -1
  123. package/response/TaskResponse.js +44 -64
  124. package/response/TaskResponse.js.map +1 -1
  125. package/response/abstractions/Response.js +0 -3
  126. package/response/abstractions/ResponseAbortedResult.js +0 -3
  127. package/response/abstractions/ResponseBaseResult.js +0 -3
  128. package/response/abstractions/ResponseContinueResult.js +0 -3
  129. package/response/abstractions/ResponseDoneResult.js +0 -3
  130. package/response/abstractions/ResponseErrorResult.js +0 -3
  131. package/response/abstractions/TaskResponse.js +0 -3
  132. package/response/abstractions/index.js +0 -2
  133. package/response/index.js +0 -2
  134. package/runner/TaskControl.js +150 -221
  135. package/runner/TaskControl.js.map +1 -1
  136. package/runner/TaskEventValidation.js +12 -13
  137. package/runner/TaskEventValidation.js.map +1 -1
  138. package/runner/TaskManager.js +68 -106
  139. package/runner/TaskManager.js.map +1 -1
  140. package/runner/TaskManagerStore.js +90 -139
  141. package/runner/TaskManagerStore.js.map +1 -1
  142. package/runner/TaskRunner.js +45 -65
  143. package/runner/TaskRunner.js.map +1 -1
  144. package/runner/abstractions/TaskControl.js +0 -3
  145. package/runner/abstractions/TaskEventValidation.js +0 -3
  146. package/runner/abstractions/TaskManager.js +0 -3
  147. package/runner/abstractions/TaskManagerStore.js +0 -3
  148. package/runner/abstractions/TaskRunner.js +0 -3
  149. package/runner/abstractions/index.js +0 -2
  150. package/runner/index.js +0 -2
  151. package/service/EventBridgeEventTransportPlugin.js +43 -42
  152. package/service/EventBridgeEventTransportPlugin.js.map +1 -1
  153. package/service/StepFunctionServicePlugin.js +65 -66
  154. package/service/StepFunctionServicePlugin.js.map +1 -1
  155. package/service/createService.js +10 -13
  156. package/service/createService.js.map +1 -1
  157. package/service/index.js +7 -5
  158. package/service/index.js.map +1 -1
  159. package/tasks/testingRunTask.js +11 -10
  160. package/tasks/testingRunTask.js.map +1 -1
  161. package/types.js +12 -12
  162. package/types.js.map +1 -1
  163. package/utils/ObjectUpdater.js +25 -31
  164. package/utils/ObjectUpdater.js.map +1 -1
  165. package/utils/getErrorProperties.js +5 -4
  166. package/utils/getErrorProperties.js.map +1 -1
  167. package/utils/getObjectProperties.js +8 -15
  168. package/utils/getObjectProperties.js.map +1 -1
  169. package/utils/index.js +0 -2
  170. package/utils/normalizeSelfCleanup.js +13 -12
  171. package/utils/normalizeSelfCleanup.js.map +1 -1
  172. package/events/index.js.map +0 -1
  173. package/features/AbortTask/index.js.map +0 -1
  174. package/features/CleanupTaskSubtree/index.js.map +0 -1
  175. package/features/GetTask/index.js.map +0 -1
  176. package/features/GetTaskDefinition/index.js.map +0 -1
  177. package/features/ListTaskDefinitions/index.js.map +0 -1
  178. package/features/ListTasks/index.js.map +0 -1
  179. package/features/TaskController/augmentation.js.map +0 -1
  180. package/features/TaskController/index.js.map +0 -1
  181. package/features/TaskExecutionContext/index.js.map +0 -1
  182. package/features/TriggerTask/index.js.map +0 -1
  183. package/global.js.map +0 -1
  184. package/handler/types.js.map +0 -1
  185. package/index.js.map +0 -1
  186. package/plugins/index.js.map +0 -1
  187. package/response/abstractions/Response.js.map +0 -1
  188. package/response/abstractions/ResponseAbortedResult.js.map +0 -1
  189. package/response/abstractions/ResponseBaseResult.js.map +0 -1
  190. package/response/abstractions/ResponseContinueResult.js.map +0 -1
  191. package/response/abstractions/ResponseDoneResult.js.map +0 -1
  192. package/response/abstractions/ResponseErrorResult.js.map +0 -1
  193. package/response/abstractions/TaskResponse.js.map +0 -1
  194. package/response/abstractions/index.js.map +0 -1
  195. package/response/index.js.map +0 -1
  196. package/runner/abstractions/TaskControl.js.map +0 -1
  197. package/runner/abstractions/TaskEventValidation.js.map +0 -1
  198. package/runner/abstractions/TaskManager.js.map +0 -1
  199. package/runner/abstractions/TaskManagerStore.js.map +0 -1
  200. package/runner/abstractions/TaskRunner.js.map +0 -1
  201. package/runner/abstractions/index.js.map +0 -1
  202. package/runner/index.js.map +0 -1
  203. package/utils/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListTasksUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { IListTasksResponse, IListTaskParams } from \"~/types.js\";\n\nexport interface IListTasksUseCase {\n execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: ListTasksParams\n ): Promise<IListTasksResponse<I, O>>;\n}\n\nexport type ListTasksParams = IListTaskParams;\n\nexport const ListTasksUseCase = createAbstraction<IListTasksUseCase>(\"Tasks/ListTasksUseCase\");\n\nexport namespace ListTasksUseCase {\n export type Interface = IListTasksUseCase;\n export type Params = ListTasksParams;\n\n export type Return<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n > = Promise<IListTasksResponse<I, O>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAgBvD,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAoB,wBAAwB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListTasks/abstractions.js","sources":["../../../src/features/ListTasks/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport type { IListTasksResponse, IListTaskParams } from \"~/types.js\";\n\nexport interface IListTasksUseCase {\n execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: ListTasksParams\n ): Promise<IListTasksResponse<I, O>>;\n}\n\nexport type ListTasksParams = IListTaskParams;\n\nexport const ListTasksUseCase = createAbstraction<IListTasksUseCase>(\"Tasks/ListTasksUseCase\");\n\nexport namespace ListTasksUseCase {\n export type Interface = IListTasksUseCase;\n export type Params = ListTasksParams;\n\n export type Return<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n > = Promise<IListTasksResponse<I, O>>;\n}\n"],"names":["ListTasksUseCase","createAbstraction"],"mappings":";AAgBO,MAAMA,mBAAmBC,kBAAqC"}
@@ -1,11 +1,12 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListTasksUseCaseImpl } from "./ListTasksUseCase.js";
3
3
  import { ListTasksUseCase } from "./abstractions.js";
4
- export const ListTasksFeature = createFeature({
5
- name: "ListTasks",
6
- register(container, context) {
7
- container.registerInstance(ListTasksUseCase, new ListTasksUseCaseImpl(context));
8
- }
4
+ const ListTasksFeature = createFeature({
5
+ name: "ListTasks",
6
+ register (container, context) {
7
+ container.registerInstance(ListTasksUseCase, new ListTasksUseCaseImpl(context));
8
+ }
9
9
  });
10
+ export { ListTasksFeature };
10
11
 
11
12
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListTasksUseCaseImpl","ListTasksUseCase","ListTasksFeature","name","register","container","context","registerInstance"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListTasksUseCaseImpl } from \"./ListTasksUseCase.js\";\nimport type { Context } from \"~/types.js\";\nimport { ListTasksUseCase } from \"./abstractions.js\";\n\nexport const ListTasksFeature = createFeature<Context>({\n name: \"ListTasks\",\n register(container, context) {\n container.registerInstance(ListTasksUseCase, new ListTasksUseCaseImpl(context!));\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAE7B,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,gBAAgB,GAAGH,aAAa,CAAU;EACnDI,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAS,EAAEC,OAAO,EAAE;IACzBD,SAAS,CAACE,gBAAgB,CAACN,gBAAgB,EAAE,IAAID,oBAAoB,CAACM,OAAQ,CAAC,CAAC;EACpF;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/ListTasks/feature.js","sources":["../../../src/features/ListTasks/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListTasksUseCaseImpl } from \"./ListTasksUseCase.js\";\nimport type { Context } from \"~/types.js\";\nimport { ListTasksUseCase } from \"./abstractions.js\";\n\nexport const ListTasksFeature = createFeature<Context>({\n name: \"ListTasks\",\n register(container, context) {\n container.registerInstance(ListTasksUseCase, new ListTasksUseCaseImpl(context!));\n }\n});\n"],"names":["ListTasksFeature","createFeature","container","context","ListTasksUseCase","ListTasksUseCaseImpl"],"mappings":";;;AAKO,MAAMA,mBAAmBC,cAAuB;IACnD,MAAM;IACN,UAASC,SAAS,EAAEC,OAAO;QACvBD,UAAU,gBAAgB,CAACE,kBAAkB,IAAIC,qBAAqBF;IAC1E;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export { ListTasksUseCase } from "./abstractions.js";
2
2
  export { ListTasksFeature } from "./feature.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,71 +1,71 @@
1
- import { TaskController as Abstraction } from "@webiny/api-core/features/task/TaskController/abstractions.js";
1
+ import { TaskController } from "@webiny/api-core/features/task/TaskController/abstractions.js";
2
2
  import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
3
  import { TaskExecutionContext } from "../TaskExecutionContext/abstractions.js";
4
4
  import { TaskDataStatus } from "../../types.js";
5
5
  import "./augmentation.js";
6
6
  class TaskControllerImpl {
7
- constructor(taskService, executionContext) {
8
- this.taskService = taskService;
9
- this.executionContext = executionContext;
10
- }
11
- get store() {
12
- return this.executionContext.store;
13
- }
14
- get runner() {
15
- return this.executionContext.runner;
16
- }
17
- get timer() {
18
- return this.executionContext.timer;
19
- }
20
- get response() {
21
- return this.executionContext.response;
22
- }
23
- state = {
24
- getTask: () => this.store.getTask(),
25
- getStatus: () => this.store.getStatus(),
26
- getInput: () => this.store.getInput(),
27
- getOutput: () => this.store.getOutput(),
28
- updateInput: async input => await this.store.updateInput(input),
29
- updateOutput: async output => await this.store.updateOutput(output)
30
- };
31
- logger = {
32
- info: async params => {
33
- await this.store.addInfoLog(params);
34
- },
35
- error: async params => {
36
- const error = params.error;
37
- const errorObj = error instanceof Error ? {
38
- message: error.message,
39
- stack: error.stack
40
- } : error;
41
- await this.store.addErrorLog({
42
- message: params.message,
43
- error: errorObj,
44
- data: params.data
45
- });
7
+ constructor(taskService, executionContext){
8
+ this.taskService = taskService;
9
+ this.executionContext = executionContext;
10
+ this.state = {
11
+ getTask: ()=>this.store.getTask(),
12
+ getStatus: ()=>this.store.getStatus(),
13
+ getInput: ()=>this.store.getInput(),
14
+ getOutput: ()=>this.store.getOutput(),
15
+ updateInput: async (input)=>await this.store.updateInput(input),
16
+ updateOutput: async (output)=>await this.store.updateOutput(output)
17
+ };
18
+ this.logger = {
19
+ info: async (params)=>{
20
+ await this.store.addInfoLog(params);
21
+ },
22
+ error: async (params)=>{
23
+ const error = params.error;
24
+ const errorObj = error instanceof Error ? {
25
+ message: error.message,
26
+ stack: error.stack
27
+ } : error;
28
+ await this.store.addErrorLog({
29
+ message: params.message,
30
+ error: errorObj,
31
+ data: params.data
32
+ });
33
+ }
34
+ };
35
+ this.task = {
36
+ trigger: async (params)=>this.taskService.trigger({
37
+ ...params,
38
+ parent: this.store.getTask()
39
+ }),
40
+ listChildren: async (definitionId)=>this.store.listChildTasks(definitionId)
41
+ };
42
+ this.runtime = {
43
+ isCloseToTimeout: (seconds)=>this.runner.isCloseToTimeout(seconds),
44
+ isAborted: ()=>this.store.getStatus() === TaskDataStatus.ABORTED,
45
+ getRemainingSeconds: ()=>this.timer.getRemainingSeconds(),
46
+ getRemainingMilliseconds: ()=>this.timer.getRemainingMilliseconds()
47
+ };
46
48
  }
47
- };
48
- task = {
49
- trigger: async params => {
50
- return this.taskService.trigger({
51
- ...params,
52
- parent: this.store.getTask()
53
- });
54
- },
55
- listChildren: async definitionId => {
56
- return this.store.listChildTasks(definitionId);
49
+ get store() {
50
+ return this.executionContext.store;
51
+ }
52
+ get runner() {
53
+ return this.executionContext.runner;
54
+ }
55
+ get timer() {
56
+ return this.executionContext.timer;
57
+ }
58
+ get response() {
59
+ return this.executionContext.response;
57
60
  }
58
- };
59
- runtime = {
60
- isCloseToTimeout: seconds => this.runner.isCloseToTimeout(seconds),
61
- isAborted: () => this.store.getStatus() === TaskDataStatus.ABORTED,
62
- getRemainingSeconds: () => this.timer.getRemainingSeconds(),
63
- getRemainingMilliseconds: () => this.timer.getRemainingMilliseconds()
64
- };
65
61
  }
66
- export const TaskController = Abstraction.createImplementation({
67
- implementation: TaskControllerImpl,
68
- dependencies: [TaskService, TaskExecutionContext]
62
+ const TaskController_TaskController = TaskController.createImplementation({
63
+ implementation: TaskControllerImpl,
64
+ dependencies: [
65
+ TaskService,
66
+ TaskExecutionContext
67
+ ]
69
68
  });
69
+ export { TaskController_TaskController as TaskController };
70
70
 
71
71
  //# sourceMappingURL=TaskController.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TaskController","Abstraction","TaskService","TaskExecutionContext","TaskDataStatus","TaskControllerImpl","constructor","taskService","executionContext","store","runner","timer","response","state","getTask","getStatus","getInput","getOutput","updateInput","input","updateOutput","output","logger","info","params","addInfoLog","error","errorObj","Error","message","stack","addErrorLog","data","task","trigger","parent","listChildren","definitionId","listChildTasks","runtime","isCloseToTimeout","seconds","isAborted","ABORTED","getRemainingSeconds","getRemainingMilliseconds","createImplementation","implementation","dependencies"],"sources":["TaskController.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/abstractions.js\";\nimport { TaskController as Abstraction } from \"@webiny/api-core/features/task/TaskController/abstractions.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskExecutionContext } from \"../TaskExecutionContext/abstractions.js\";\nimport { type ITaskTriggerParams, TaskDataStatus } from \"~/types.js\";\nimport \"./augmentation.js\";\nimport { BaseError, Result } from \"@webiny/feature/api/index.js\";\n\nclass TaskControllerImpl implements Abstraction.Interface {\n constructor(\n private taskService: TaskService.Interface,\n private executionContext: TaskExecutionContext.Interface\n ) {}\n\n private get store() {\n return this.executionContext.store;\n }\n\n private get runner() {\n return this.executionContext.runner;\n }\n\n private get timer() {\n return this.executionContext.timer;\n }\n\n public get response() {\n return this.executionContext.response;\n }\n\n state = {\n getTask: () => this.store.getTask(),\n getStatus: () => this.store.getStatus(),\n getInput: () => this.store.getInput(),\n getOutput: () => this.store.getOutput(),\n updateInput: async (input: any) => await this.store.updateInput(input),\n updateOutput: async (output: any) => await this.store.updateOutput(output)\n };\n\n logger = {\n info: async (params: { message: string; data?: Record<string, any> }) => {\n await this.store.addInfoLog(params);\n },\n error: async (params: {\n message: string;\n error?: Error | any;\n data?: Record<string, any>;\n }) => {\n const error = params.error;\n const errorObj =\n error instanceof Error ? { message: error.message, stack: error.stack } : error;\n await this.store.addErrorLog({\n message: params.message,\n error: errorObj,\n data: params.data\n });\n }\n };\n\n task = {\n trigger: async <CI extends TaskDefinition.TaskInput = TaskDefinition.TaskInput>(\n params: ITaskTriggerParams<CI>\n ): Promise<Result<TaskService.Task<CI>, BaseError>> => {\n return this.taskService.trigger({ ...params, parent: this.store.getTask() });\n },\n listChildren: async <\n CT extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n CO extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n definitionId?: string\n ): Promise<TaskService.Task<CT, CO>[]> => {\n return this.store.listChildTasks(definitionId);\n }\n };\n\n runtime = {\n isCloseToTimeout: (seconds?: number) => this.runner.isCloseToTimeout(seconds),\n isAborted: () => this.store.getStatus() === TaskDataStatus.ABORTED,\n getRemainingSeconds: () => this.timer.getRemainingSeconds(),\n getRemainingMilliseconds: () => this.timer.getRemainingMilliseconds()\n };\n}\n\nexport const TaskController = Abstraction.createImplementation({\n implementation: TaskControllerImpl,\n dependencies: [TaskService, TaskExecutionContext]\n});\n"],"mappings":"AACA,SAASA,cAAc,IAAIC,WAAW,QAAQ,+DAA+D;AAC7G,SAASC,WAAW,QAAQ,qDAAqD;AACjF,SAASC,oBAAoB;AAC7B,SAAkCC,cAAc;AAChD;AAGA,MAAMC,kBAAkB,CAAkC;EACtDC,WAAWA,CACCC,WAAkC,EAClCC,gBAAgD,EAC1D;IAAA,KAFUD,WAAkC,GAAlCA,WAAkC;IAAA,KAClCC,gBAAgD,GAAhDA,gBAAgD;EACzD;EAEH,IAAYC,KAAKA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACD,gBAAgB,CAACC,KAAK;EACtC;EAEA,IAAYC,MAAMA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACF,gBAAgB,CAACE,MAAM;EACvC;EAEA,IAAYC,KAAKA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACH,gBAAgB,CAACG,KAAK;EACtC;EAEA,IAAWC,QAAQA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACJ,gBAAgB,CAACI,QAAQ;EACzC;EAEAC,KAAK,GAAG;IACJC,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACL,KAAK,CAACK,OAAO,CAAC,CAAC;IACnCC,SAAS,EAAEA,CAAA,KAAM,IAAI,CAACN,KAAK,CAACM,SAAS,CAAC,CAAC;IACvCC,QAAQ,EAAEA,CAAA,KAAM,IAAI,CAACP,KAAK,CAACO,QAAQ,CAAC,CAAC;IACrCC,SAAS,EAAEA,CAAA,KAAM,IAAI,CAACR,KAAK,CAACQ,SAAS,CAAC,CAAC;IACvCC,WAAW,EAAE,MAAOC,KAAU,IAAK,MAAM,IAAI,CAACV,KAAK,CAACS,WAAW,CAACC,KAAK,CAAC;IACtEC,YAAY,EAAE,MAAOC,MAAW,IAAK,MAAM,IAAI,CAACZ,KAAK,CAACW,YAAY,CAACC,MAAM;EAC7E,CAAC;EAEDC,MAAM,GAAG;IACLC,IAAI,EAAE,MAAOC,MAAuD,IAAK;MACrE,MAAM,IAAI,CAACf,KAAK,CAACgB,UAAU,CAACD,MAAM,CAAC;IACvC,CAAC;IACDE,KAAK,EAAE,MAAOF,MAIb,IAAK;MACF,MAAME,KAAK,GAAGF,MAAM,CAACE,KAAK;MAC1B,MAAMC,QAAQ,GACVD,KAAK,YAAYE,KAAK,GAAG;QAAEC,OAAO,EAAEH,KAAK,CAACG,OAAO;QAAEC,KAAK,EAAEJ,KAAK,CAACI;MAAM,CAAC,GAAGJ,KAAK;MACnF,MAAM,IAAI,CAACjB,KAAK,CAACsB,WAAW,CAAC;QACzBF,OAAO,EAAEL,MAAM,CAACK,OAAO;QACvBH,KAAK,EAAEC,QAAQ;QACfK,IAAI,EAAER,MAAM,CAACQ;MACjB,CAAC,CAAC;IACN;EACJ,CAAC;EAEDC,IAAI,GAAG;IACHC,OAAO,EAAE,MACLV,MAA8B,IACqB;MACnD,OAAO,IAAI,CAACjB,WAAW,CAAC2B,OAAO,CAAC;QAAE,GAAGV,MAAM;QAAEW,MAAM,EAAE,IAAI,CAAC1B,KAAK,CAACK,OAAO,CAAC;MAAE,CAAC,CAAC;IAChF,CAAC;IACDsB,YAAY,EAAE,MAIVC,YAAqB,IACiB;MACtC,OAAO,IAAI,CAAC5B,KAAK,CAAC6B,cAAc,CAACD,YAAY,CAAC;IAClD;EACJ,CAAC;EAEDE,OAAO,GAAG;IACNC,gBAAgB,EAAGC,OAAgB,IAAK,IAAI,CAAC/B,MAAM,CAAC8B,gBAAgB,CAACC,OAAO,CAAC;IAC7EC,SAAS,EAAEA,CAAA,KAAM,IAAI,CAACjC,KAAK,CAACM,SAAS,CAAC,CAAC,KAAKX,cAAc,CAACuC,OAAO;IAClEC,mBAAmB,EAAEA,CAAA,KAAM,IAAI,CAACjC,KAAK,CAACiC,mBAAmB,CAAC,CAAC;IAC3DC,wBAAwB,EAAEA,CAAA,KAAM,IAAI,CAAClC,KAAK,CAACkC,wBAAwB,CAAC;EACxE,CAAC;AACL;AAEA,OAAO,MAAM7C,cAAc,GAAGC,WAAW,CAAC6C,oBAAoB,CAAC;EAC3DC,cAAc,EAAE1C,kBAAkB;EAClC2C,YAAY,EAAE,CAAC9C,WAAW,EAAEC,oBAAoB;AACpD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/TaskController/TaskController.js","sources":["../../../src/features/TaskController/TaskController.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/abstractions.js\";\nimport { TaskController as Abstraction } from \"@webiny/api-core/features/task/TaskController/abstractions.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskExecutionContext } from \"../TaskExecutionContext/abstractions.js\";\nimport { type ITaskTriggerParams, TaskDataStatus } from \"~/types.js\";\nimport \"./augmentation.js\";\nimport { BaseError, Result } from \"@webiny/feature/api/index.js\";\n\nclass TaskControllerImpl implements Abstraction.Interface {\n constructor(\n private taskService: TaskService.Interface,\n private executionContext: TaskExecutionContext.Interface\n ) {}\n\n private get store() {\n return this.executionContext.store;\n }\n\n private get runner() {\n return this.executionContext.runner;\n }\n\n private get timer() {\n return this.executionContext.timer;\n }\n\n public get response() {\n return this.executionContext.response;\n }\n\n state = {\n getTask: () => this.store.getTask(),\n getStatus: () => this.store.getStatus(),\n getInput: () => this.store.getInput(),\n getOutput: () => this.store.getOutput(),\n updateInput: async (input: any) => await this.store.updateInput(input),\n updateOutput: async (output: any) => await this.store.updateOutput(output)\n };\n\n logger = {\n info: async (params: { message: string; data?: Record<string, any> }) => {\n await this.store.addInfoLog(params);\n },\n error: async (params: {\n message: string;\n error?: Error | any;\n data?: Record<string, any>;\n }) => {\n const error = params.error;\n const errorObj =\n error instanceof Error ? { message: error.message, stack: error.stack } : error;\n await this.store.addErrorLog({\n message: params.message,\n error: errorObj,\n data: params.data\n });\n }\n };\n\n task = {\n trigger: async <CI extends TaskDefinition.TaskInput = TaskDefinition.TaskInput>(\n params: ITaskTriggerParams<CI>\n ): Promise<Result<TaskService.Task<CI>, BaseError>> => {\n return this.taskService.trigger({ ...params, parent: this.store.getTask() });\n },\n listChildren: async <\n CT extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n CO extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n definitionId?: string\n ): Promise<TaskService.Task<CT, CO>[]> => {\n return this.store.listChildTasks(definitionId);\n }\n };\n\n runtime = {\n isCloseToTimeout: (seconds?: number) => this.runner.isCloseToTimeout(seconds),\n isAborted: () => this.store.getStatus() === TaskDataStatus.ABORTED,\n getRemainingSeconds: () => this.timer.getRemainingSeconds(),\n getRemainingMilliseconds: () => this.timer.getRemainingMilliseconds()\n };\n}\n\nexport const TaskController = Abstraction.createImplementation({\n implementation: TaskControllerImpl,\n dependencies: [TaskService, TaskExecutionContext]\n});\n"],"names":["TaskControllerImpl","taskService","executionContext","input","output","params","error","errorObj","Error","definitionId","seconds","TaskDataStatus","TaskController","Abstraction","TaskService","TaskExecutionContext"],"mappings":";;;;;AAQA,MAAMA;IACF,YACYC,WAAkC,EAClCC,gBAAgD,CAC1D;aAFUD,WAAW,GAAXA;aACAC,gBAAgB,GAAhBA;aAmBZ,KAAK,GAAG;YACJ,SAAS,IAAM,IAAI,CAAC,KAAK,CAAC,OAAO;YACjC,WAAW,IAAM,IAAI,CAAC,KAAK,CAAC,SAAS;YACrC,UAAU,IAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;YACnC,WAAW,IAAM,IAAI,CAAC,KAAK,CAAC,SAAS;YACrC,aAAa,OAAOC,QAAe,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAACA;YAChE,cAAc,OAAOC,SAAgB,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAACA;QACvE;aAEA,MAAM,GAAG;YACL,MAAM,OAAOC;gBACT,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAACA;YAChC;YACA,OAAO,OAAOA;gBAKV,MAAMC,QAAQD,OAAO,KAAK;gBAC1B,MAAME,WACFD,iBAAiBE,QAAQ;oBAAE,SAASF,MAAM,OAAO;oBAAE,OAAOA,MAAM,KAAK;gBAAC,IAAIA;gBAC9E,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBACzB,SAASD,OAAO,OAAO;oBACvB,OAAOE;oBACP,MAAMF,OAAO,IAAI;gBACrB;YACJ;QACJ;aAEA,IAAI,GAAG;YACH,SAAS,OACLA,SAEO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;oBAAE,GAAGA,MAAM;oBAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAG;YAE9E,cAAc,OAIVI,eAEO,IAAI,CAAC,KAAK,CAAC,cAAc,CAACA;QAEzC;aAEA,OAAO,GAAG;YACN,kBAAkB,CAACC,UAAqB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAACA;YACrE,WAAW,IAAM,IAAI,CAAC,KAAK,CAAC,SAAS,OAAOC,eAAe,OAAO;YAClE,qBAAqB,IAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB;YACzD,0BAA0B,IAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB;QACvE;IApEG;IAEH,IAAY,QAAQ;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK;IACtC;IAEA,IAAY,SAAS;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM;IACvC;IAEA,IAAY,QAAQ;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK;IACtC;IAEA,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ;IACzC;AAqDJ;AAEO,MAAMC,gCAAiBC,eAAAA,oBAAgC,CAAC;IAC3D,gBAAgBb;IAChB,cAAc;QAACc;QAAaC;KAAqB;AACrD"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=augmentation.js.map
@@ -1,7 +1,2 @@
1
- // Import augmentation to ensure it's loaded
2
1
  import "./augmentation.js";
3
-
4
- // Export implementation only
5
2
  export { TaskController } from "./TaskController.js";
6
-
7
- //# sourceMappingURL=index.js.map
@@ -1,50 +1,43 @@
1
- import { TaskExecutionContext as Abstraction } from "./abstractions.js";
1
+ import { TaskExecutionContext } from "./abstractions.js";
2
2
  class TaskExecutionContextImpl {
3
- get store() {
4
- if (!this._store) {
5
- throw new Error("TaskExecutionContext: store not set. Task execution not started.");
6
- }
7
- return this._store;
8
- }
9
- get runner() {
10
- if (!this._runner) {
11
- throw new Error("TaskExecutionContext: runner not set. Task execution not started.");
12
- }
13
- return this._runner;
14
- }
15
- get timer() {
16
- if (!this._timer) {
17
- throw new Error("TaskExecutionContext: timer not set. Task execution not started.");
18
- }
19
- return this._timer;
20
- }
21
- get response() {
22
- if (!this._response) {
23
- throw new Error("TaskExecutionContext: response not set. Task execution not started.");
24
- }
25
- return this._response;
26
- }
27
- setStore(store) {
28
- this._store = store;
29
- }
30
- setRunner(runner) {
31
- this._runner = runner;
32
- }
33
- setTimer(timer) {
34
- this._timer = timer;
35
- }
36
- setResponse(response) {
37
- this._response = response;
38
- }
39
- clear() {
40
- this._store = undefined;
41
- this._runner = undefined;
42
- this._timer = undefined;
43
- }
3
+ get store() {
4
+ if (!this._store) throw new Error("TaskExecutionContext: store not set. Task execution not started.");
5
+ return this._store;
6
+ }
7
+ get runner() {
8
+ if (!this._runner) throw new Error("TaskExecutionContext: runner not set. Task execution not started.");
9
+ return this._runner;
10
+ }
11
+ get timer() {
12
+ if (!this._timer) throw new Error("TaskExecutionContext: timer not set. Task execution not started.");
13
+ return this._timer;
14
+ }
15
+ get response() {
16
+ if (!this._response) throw new Error("TaskExecutionContext: response not set. Task execution not started.");
17
+ return this._response;
18
+ }
19
+ setStore(store) {
20
+ this._store = store;
21
+ }
22
+ setRunner(runner) {
23
+ this._runner = runner;
24
+ }
25
+ setTimer(timer) {
26
+ this._timer = timer;
27
+ }
28
+ setResponse(response) {
29
+ this._response = response;
30
+ }
31
+ clear() {
32
+ this._store = void 0;
33
+ this._runner = void 0;
34
+ this._timer = void 0;
35
+ }
44
36
  }
45
- export const TaskExecutionContext = Abstraction.createImplementation({
46
- implementation: TaskExecutionContextImpl,
47
- dependencies: []
37
+ const TaskExecutionContext_TaskExecutionContext = TaskExecutionContext.createImplementation({
38
+ implementation: TaskExecutionContextImpl,
39
+ dependencies: []
48
40
  });
41
+ export { TaskExecutionContext_TaskExecutionContext as TaskExecutionContext };
49
42
 
50
43
  //# sourceMappingURL=TaskExecutionContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TaskExecutionContext","Abstraction","TaskExecutionContextImpl","store","_store","Error","runner","_runner","timer","_timer","response","_response","setStore","setRunner","setTimer","setResponse","clear","undefined","createImplementation","implementation","dependencies"],"sources":["TaskExecutionContext.ts"],"sourcesContent":["import { TaskExecutionContext as Abstraction } from \"./abstractions.js\";\nimport type { ITaskManagerStore } from \"~/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/runner/abstractions/TaskRunner.js\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskResponse } from \"~/response/abstractions/index.js\";\n\nclass TaskExecutionContextImpl implements Abstraction.Interface {\n private _store?: ITaskManagerStore;\n private _runner?: ITaskRunner;\n private _timer?: ITimer;\n private _response?: ITaskResponse;\n\n get store(): ITaskManagerStore {\n if (!this._store) {\n throw new Error(\"TaskExecutionContext: store not set. Task execution not started.\");\n }\n return this._store;\n }\n\n get runner(): ITaskRunner {\n if (!this._runner) {\n throw new Error(\"TaskExecutionContext: runner not set. Task execution not started.\");\n }\n return this._runner;\n }\n\n get timer(): ITimer {\n if (!this._timer) {\n throw new Error(\"TaskExecutionContext: timer not set. Task execution not started.\");\n }\n return this._timer;\n }\n\n get response(): ITaskResponse {\n if (!this._response) {\n throw new Error(\"TaskExecutionContext: response not set. Task execution not started.\");\n }\n return this._response;\n }\n\n setStore(store: ITaskManagerStore): void {\n this._store = store;\n }\n\n setRunner(runner: ITaskRunner): void {\n this._runner = runner;\n }\n\n setTimer(timer: ITimer): void {\n this._timer = timer;\n }\n\n setResponse(response: ITaskResponse): void {\n this._response = response;\n }\n\n clear(): void {\n this._store = undefined;\n this._runner = undefined;\n this._timer = undefined;\n }\n}\n\nexport const TaskExecutionContext = Abstraction.createImplementation({\n implementation: TaskExecutionContextImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,WAAW;AAM5C,MAAMC,wBAAwB,CAAkC;EAM5D,IAAIC,KAAKA,CAAA,EAAsB;IAC3B,IAAI,CAAC,IAAI,CAACC,MAAM,EAAE;MACd,MAAM,IAAIC,KAAK,CAAC,kEAAkE,CAAC;IACvF;IACA,OAAO,IAAI,CAACD,MAAM;EACtB;EAEA,IAAIE,MAAMA,CAAA,EAAgB;IACtB,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACf,MAAM,IAAIF,KAAK,CAAC,mEAAmE,CAAC;IACxF;IACA,OAAO,IAAI,CAACE,OAAO;EACvB;EAEA,IAAIC,KAAKA,CAAA,EAAW;IAChB,IAAI,CAAC,IAAI,CAACC,MAAM,EAAE;MACd,MAAM,IAAIJ,KAAK,CAAC,kEAAkE,CAAC;IACvF;IACA,OAAO,IAAI,CAACI,MAAM;EACtB;EAEA,IAAIC,QAAQA,CAAA,EAAkB;IAC1B,IAAI,CAAC,IAAI,CAACC,SAAS,EAAE;MACjB,MAAM,IAAIN,KAAK,CAAC,qEAAqE,CAAC;IAC1F;IACA,OAAO,IAAI,CAACM,SAAS;EACzB;EAEAC,QAAQA,CAACT,KAAwB,EAAQ;IACrC,IAAI,CAACC,MAAM,GAAGD,KAAK;EACvB;EAEAU,SAASA,CAACP,MAAmB,EAAQ;IACjC,IAAI,CAACC,OAAO,GAAGD,MAAM;EACzB;EAEAQ,QAAQA,CAACN,KAAa,EAAQ;IAC1B,IAAI,CAACC,MAAM,GAAGD,KAAK;EACvB;EAEAO,WAAWA,CAACL,QAAuB,EAAQ;IACvC,IAAI,CAACC,SAAS,GAAGD,QAAQ;EAC7B;EAEAM,KAAKA,CAAA,EAAS;IACV,IAAI,CAACZ,MAAM,GAAGa,SAAS;IACvB,IAAI,CAACV,OAAO,GAAGU,SAAS;IACxB,IAAI,CAACR,MAAM,GAAGQ,SAAS;EAC3B;AACJ;AAEA,OAAO,MAAMjB,oBAAoB,GAAGC,WAAW,CAACiB,oBAAoB,CAAC;EACjEC,cAAc,EAAEjB,wBAAwB;EACxCkB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/TaskExecutionContext/TaskExecutionContext.js","sources":["../../../src/features/TaskExecutionContext/TaskExecutionContext.ts"],"sourcesContent":["import { TaskExecutionContext as Abstraction } from \"./abstractions.js\";\nimport type { ITaskManagerStore } from \"~/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/runner/abstractions/TaskRunner.js\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskResponse } from \"~/response/abstractions/index.js\";\n\nclass TaskExecutionContextImpl implements Abstraction.Interface {\n private _store?: ITaskManagerStore;\n private _runner?: ITaskRunner;\n private _timer?: ITimer;\n private _response?: ITaskResponse;\n\n get store(): ITaskManagerStore {\n if (!this._store) {\n throw new Error(\"TaskExecutionContext: store not set. Task execution not started.\");\n }\n return this._store;\n }\n\n get runner(): ITaskRunner {\n if (!this._runner) {\n throw new Error(\"TaskExecutionContext: runner not set. Task execution not started.\");\n }\n return this._runner;\n }\n\n get timer(): ITimer {\n if (!this._timer) {\n throw new Error(\"TaskExecutionContext: timer not set. Task execution not started.\");\n }\n return this._timer;\n }\n\n get response(): ITaskResponse {\n if (!this._response) {\n throw new Error(\"TaskExecutionContext: response not set. Task execution not started.\");\n }\n return this._response;\n }\n\n setStore(store: ITaskManagerStore): void {\n this._store = store;\n }\n\n setRunner(runner: ITaskRunner): void {\n this._runner = runner;\n }\n\n setTimer(timer: ITimer): void {\n this._timer = timer;\n }\n\n setResponse(response: ITaskResponse): void {\n this._response = response;\n }\n\n clear(): void {\n this._store = undefined;\n this._runner = undefined;\n this._timer = undefined;\n }\n}\n\nexport const TaskExecutionContext = Abstraction.createImplementation({\n implementation: TaskExecutionContextImpl,\n dependencies: []\n});\n"],"names":["TaskExecutionContextImpl","Error","store","runner","timer","response","undefined","TaskExecutionContext","Abstraction"],"mappings":";AAMA,MAAMA;IAMF,IAAI,QAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EACZ,MAAM,IAAIC,MAAM;QAEpB,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAI,SAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EACb,MAAM,IAAIA,MAAM;QAEpB,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAI,QAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EACZ,MAAM,IAAIA,MAAM;QAEpB,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAI,WAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EACf,MAAM,IAAIA,MAAM;QAEpB,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,SAASC,KAAwB,EAAQ;QACrC,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,UAAUC,MAAmB,EAAQ;QACjC,IAAI,CAAC,OAAO,GAAGA;IACnB;IAEA,SAASC,KAAa,EAAQ;QAC1B,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,YAAYC,QAAuB,EAAQ;QACvC,IAAI,CAAC,SAAS,GAAGA;IACrB;IAEA,QAAc;QACV,IAAI,CAAC,MAAM,GAAGC;QACd,IAAI,CAAC,OAAO,GAAGA;QACf,IAAI,CAAC,MAAM,GAAGA;IAClB;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAgC,CAAC;IACjE,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
@@ -1,13 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * TaskExecutionContext holds runtime state for the currently executing task.
5
- * Properties are set by TaskRunner before task execution.
6
- *
7
- * This is registered as a singleton in the DI container with empty values,
8
- * then populated at runtime by TaskControl before executing each task.
9
- */
10
-
11
- export const TaskExecutionContext = createAbstraction("TaskExecutionContext");
2
+ const TaskExecutionContext = createAbstraction("TaskExecutionContext");
3
+ export { TaskExecutionContext };
12
4
 
13
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","TaskExecutionContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskManagerStore } from \"~/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/runner/abstractions/TaskRunner.js\";\nimport type { ITaskResponse } from \"~/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"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAMvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAkBA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/TaskExecutionContext/abstractions.js","sources":["../../../src/features/TaskExecutionContext/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskManagerStore } from \"~/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/runner/abstractions/TaskRunner.js\";\nimport type { ITaskResponse } from \"~/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,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { TaskExecutionContext } from "./TaskExecutionContext.js";
3
- export const TaskExecutionContextFeature = createFeature({
4
- name: "TaskExecutionContext",
5
- register(container) {
6
- container.register(TaskExecutionContext).inSingletonScope();
7
- }
3
+ const TaskExecutionContextFeature = createFeature({
4
+ name: "TaskExecutionContext",
5
+ register (container) {
6
+ container.register(TaskExecutionContext).inSingletonScope();
7
+ }
8
8
  });
9
+ export { TaskExecutionContextFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","TaskExecutionContext","TaskExecutionContextFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TaskExecutionContext } from \"./TaskExecutionContext.js\";\n\nexport const TaskExecutionContextFeature = createFeature({\n name: \"TaskExecutionContext\",\n register(container) {\n container.register(TaskExecutionContext).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,2BAA2B,GAAGF,aAAa,CAAC;EACrDG,IAAI,EAAE,sBAAsB;EAC5BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAC/D;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/TaskExecutionContext/feature.js","sources":["../../../src/features/TaskExecutionContext/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TaskExecutionContext } from \"./TaskExecutionContext.js\";\n\nexport const TaskExecutionContextFeature = createFeature({\n name: \"TaskExecutionContext\",\n register(container) {\n container.register(TaskExecutionContext).inSingletonScope();\n }\n});\n"],"names":["TaskExecutionContextFeature","createFeature","container","TaskExecutionContext"],"mappings":";;AAGO,MAAMA,8BAA8BC,cAAc;IACrD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,sBAAsB,gBAAgB;IAC7D;AACJ"}
@@ -1,3 +1 @@
1
1
  export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,11 +1,12 @@
1
- export class TriggerTaskUseCaseImpl {
2
- constructor(context) {
3
- this.context = context;
4
- }
5
- async execute(params) {
6
- const result = await this.context.tasks.trigger(params);
7
- return result;
8
- }
1
+ class TriggerTaskUseCaseImpl {
2
+ constructor(context){
3
+ this.context = context;
4
+ }
5
+ async execute(params) {
6
+ const result = await this.context.tasks.trigger(params);
7
+ return result;
8
+ }
9
9
  }
10
+ export { TriggerTaskUseCaseImpl };
10
11
 
11
12
  //# sourceMappingURL=TriggerTaskUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TriggerTaskUseCaseImpl","constructor","context","execute","params","result","tasks","trigger"],"sources":["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 \"~/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"],"mappings":"AAMA,OAAO,MAAMA,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,OAAgB,EAAE;IAAA,KAAlBA,OAAgB,GAAhBA,OAAgB;EAAG;EAE9C,MAAaC,OAAOA,CAIhBC,MAAoC,EAC6B;IACjE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,OAAO,CAACI,KAAK,CAACC,OAAO,CAAOH,MAAM,CAAC;IAE7D,OAAOC,MAAM;EAGjB;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"features/TriggerTask/TriggerTaskUseCase.js","sources":["../../../src/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 \"~/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,4 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- export const TriggerTaskUseCase = createAbstraction("Tasks/TriggerTaskUseCase");
2
+ const TriggerTaskUseCase = createAbstraction("Tasks/TriggerTaskUseCase");
3
+ export { TriggerTaskUseCase };
3
4
 
4
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","TriggerTaskUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport {\n TaskDefinitionNotFoundError,\n TaskNotFoundError,\n TaskServiceInfoError\n} from \"~/domain/errors.js\";\n\nexport interface ITriggerTaskUseCase {\n execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: TriggerTaskParams<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n\nexport interface TriggerTaskParams<I = TaskDefinition.TaskInput> {\n definition: string;\n input?: I;\n name?: string;\n parent?: Pick<TaskService.Task, \"id\">;\n delay?: number;\n}\n\nexport interface ITriggerTaskUseCaseErrors {\n definitionNotFound: TaskDefinitionNotFoundError;\n taskNotFound: TaskNotFoundError;\n serviceError: TaskServiceInfoError;\n}\n\ntype UseCaseError = ITriggerTaskUseCaseErrors[keyof ITriggerTaskUseCaseErrors];\n\nexport const TriggerTaskUseCase = createAbstraction<ITriggerTaskUseCase>(\n \"Tasks/TriggerTaskUseCase\"\n);\n\nexport namespace TriggerTaskUseCase {\n export type Interface = ITriggerTaskUseCase;\n export type Params<I = TaskDefinition.TaskInput> = TriggerTaskParams<I>;\n\n export type Error = UseCaseError;\n export type Return<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n > = Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;AAkC/D,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAC/C,0BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/TriggerTask/abstractions.js","sources":["../../../src/features/TriggerTask/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport {\n TaskDefinitionNotFoundError,\n TaskNotFoundError,\n TaskServiceInfoError\n} from \"~/domain/errors.js\";\n\nexport interface ITriggerTaskUseCase {\n execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: TriggerTaskParams<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n\nexport interface TriggerTaskParams<I = TaskDefinition.TaskInput> {\n definition: string;\n input?: I;\n name?: string;\n parent?: Pick<TaskService.Task, \"id\">;\n delay?: number;\n}\n\nexport interface ITriggerTaskUseCaseErrors {\n definitionNotFound: TaskDefinitionNotFoundError;\n taskNotFound: TaskNotFoundError;\n serviceError: TaskServiceInfoError;\n}\n\ntype UseCaseError = ITriggerTaskUseCaseErrors[keyof ITriggerTaskUseCaseErrors];\n\nexport const TriggerTaskUseCase = createAbstraction<ITriggerTaskUseCase>(\n \"Tasks/TriggerTaskUseCase\"\n);\n\nexport namespace TriggerTaskUseCase {\n export type Interface = ITriggerTaskUseCase;\n export type Params<I = TaskDefinition.TaskInput> = TriggerTaskParams<I>;\n\n export type Error = UseCaseError;\n export type Return<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n > = Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n"],"names":["TriggerTaskUseCase","createAbstraction"],"mappings":";AAkCO,MAAMA,qBAAqBC,kBAC9B"}
@@ -1,11 +1,12 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { TriggerTaskUseCase } from "./abstractions.js";
3
3
  import { TriggerTaskUseCaseImpl } from "./TriggerTaskUseCase.js";
4
- export const TriggerTaskFeature = createFeature({
5
- name: "TriggerTask",
6
- register(container, context) {
7
- container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context));
8
- }
4
+ const TriggerTaskFeature = createFeature({
5
+ name: "TriggerTask",
6
+ register (container, context) {
7
+ container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context));
8
+ }
9
9
  });
10
+ export { TriggerTaskFeature };
10
11
 
11
12
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","TriggerTaskUseCase","TriggerTaskUseCaseImpl","TriggerTaskFeature","name","register","container","context","registerInstance"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/features/TriggerTask/TriggerTaskUseCase.js\";\nimport type { Context } from \"~/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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,kBAAkB;AAC3B,SAASC,sBAAsB;AAG/B,OAAO,MAAMC,kBAAkB,GAAGH,aAAa,CAAU;EACrDI,IAAI,EAAE,aAAa;EACnBC,QAAQA,CAACC,SAAS,EAAEC,OAAO,EAAE;IACzBD,SAAS,CAACE,gBAAgB,CAACP,kBAAkB,EAAE,IAAIC,sBAAsB,CAACK,OAAQ,CAAC,CAAC;EACxF;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/TriggerTask/feature.js","sources":["../../../src/features/TriggerTask/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/features/TriggerTask/TriggerTaskUseCase.js\";\nimport type { Context } from \"~/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,4 +1,2 @@
1
1
  export { TriggerTaskUseCase } from "./abstractions.js";
2
2
  export { TriggerTaskFeature } from "./feature.js";
3
-
4
- //# sourceMappingURL=index.js.map
package/global.js CHANGED
@@ -1,3 +1 @@
1
1
  import "./features/TaskController/augmentation.js";
2
-
3
- //# sourceMappingURL=global.js.map
@@ -1,40 +1,21 @@
1
1
  import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
2
-
3
- /**
4
- * @throws
5
- */
6
- export const checkPermissions = async (context, check = {}) => {
7
- const taskPermissions = await context.security.getPermissions("tasks");
8
- const relevant = taskPermissions.filter(current => {
9
- if (check.rwd && !hasRwd(current, check.rwd)) {
10
- return false;
11
- }
12
- return true;
13
- });
14
- if (relevant.length === 0) {
15
- throw new NotAuthorizedError();
16
- }
2
+ const checkPermissions = async (context, check = {})=>{
3
+ const taskPermissions = await context.security.getPermissions("tasks");
4
+ const relevant = taskPermissions.filter((current)=>{
5
+ if (check.rwd && !hasRwd(current, check.rwd)) return false;
6
+ return true;
7
+ });
8
+ if (0 === relevant.length) throw new NotAuthorizedError();
17
9
  };
18
- const hasRwd = (permissions, rwd) => {
19
- if (!Array.isArray(permissions)) {
20
- permissions = [permissions];
21
- }
22
- if (!rwd) {
23
- return true;
24
- }
25
-
26
- // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.
27
- const permissionWithoutRwdRestrictions = permissions.some(permission => {
28
- return typeof permission.rwd !== "string";
29
- });
30
- if (permissionWithoutRwdRestrictions) {
31
- return true;
32
- }
33
-
34
- // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.
35
- return permissions.some(permission => {
36
- return permission.rwd && permission.rwd.includes(rwd);
37
- });
10
+ const hasRwd = (permissions, rwd)=>{
11
+ if (!Array.isArray(permissions)) permissions = [
12
+ permissions
13
+ ];
14
+ if (!rwd) return true;
15
+ const permissionWithoutRwdRestrictions = permissions.some((permission)=>"string" != typeof permission.rwd);
16
+ if (permissionWithoutRwdRestrictions) return true;
17
+ return permissions.some((permission)=>permission.rwd && permission.rwd.includes(rwd));
38
18
  };
19
+ export { checkPermissions };
39
20
 
40
21
  //# sourceMappingURL=checkPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NotAuthorizedError","checkPermissions","context","check","taskPermissions","security","getPermissions","relevant","filter","current","rwd","hasRwd","length","permissions","Array","isArray","permissionWithoutRwdRestrictions","some","permission","includes"],"sources":["checkPermissions.ts"],"sourcesContent":["import type { Context, TaskPermission } from \"~/types.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.security.getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"mappings":"AACA,SAASA,kBAAkB,QAAQ,oDAAoD;;AAEvF;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,MAAAA,CAC5BC,OAAgB,EAChBC,KAAuB,GAAG,CAAC,CAAC,KACZ;EAChB,MAAMC,eAAe,GAAG,MAAMF,OAAO,CAACG,QAAQ,CAACC,cAAc,CAAiB,OAAO,CAAC;EAEtF,MAAMC,QAAQ,GAAGH,eAAe,CAACI,MAAM,CAACC,OAAO,IAAI;IAC/C,IAAIN,KAAK,CAACO,GAAG,IAAI,CAACC,MAAM,CAACF,OAAO,EAAEN,KAAK,CAACO,GAAG,CAAC,EAAE;MAC1C,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC,CAAC;EAEF,IAAIH,QAAQ,CAACK,MAAM,KAAK,CAAC,EAAE;IACvB,MAAM,IAAIZ,kBAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAED,MAAMW,MAAM,GAAGA,CAACE,WAA8C,EAAEH,GAAW,KAAc;EACrF,IAAI,CAACI,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC7BA,WAAW,GAAG,CAACA,WAAW,CAAC;EAC/B;EAEA,IAAI,CAACH,GAAG,EAAE;IACN,OAAO,IAAI;EACf;;EAEA;EACA,MAAMM,gCAAgC,GAAGH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IACpE,OAAO,OAAOA,UAAU,CAACR,GAAG,KAAK,QAAQ;EAC7C,CAAC,CAAC;EAEF,IAAIM,gCAAgC,EAAE;IAClC,OAAO,IAAI;EACf;;EAEA;EACA,OAAOH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IAClC,OAAOA,UAAU,CAACR,GAAG,IAAIQ,UAAU,CAACR,GAAG,CAACS,QAAQ,CAACT,GAAG,CAAC;EACzD,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"graphql/checkPermissions.js","sources":["../../src/graphql/checkPermissions.ts"],"sourcesContent":["import type { Context, TaskPermission } from \"~/types.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.security.getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"names":["checkPermissions","context","check","taskPermissions","relevant","current","hasRwd","NotAuthorizedError","permissions","rwd","Array","permissionWithoutRwdRestrictions","permission"],"mappings":";AAMO,MAAMA,mBAAmB,OAC5BC,SACAC,QAA0B,CAAC,CAAC;IAE5B,MAAMC,kBAAkB,MAAMF,QAAQ,QAAQ,CAAC,cAAc,CAAiB;IAE9E,MAAMG,WAAWD,gBAAgB,MAAM,CAACE,CAAAA;QACpC,IAAIH,MAAM,GAAG,IAAI,CAACI,OAAOD,SAASH,MAAM,GAAG,GACvC,OAAO;QAGX,OAAO;IACX;IAEA,IAAIE,AAAoB,MAApBA,SAAS,MAAM,EACf,MAAM,IAAIG;AAElB;AAEA,MAAMD,SAAS,CAACE,aAAgDC;IAC5D,IAAI,CAACC,MAAM,OAAO,CAACF,cACfA,cAAc;QAACA;KAAY;IAG/B,IAAI,CAACC,KACD,OAAO;IAIX,MAAME,mCAAmCH,YAAY,IAAI,CAACI,CAAAA,aAC/C,AAA0B,YAA1B,OAAOA,WAAW,GAAG;IAGhC,IAAID,kCACA,OAAO;IAIX,OAAOH,YAAY,IAAI,CAACI,CAAAA,aACbA,WAAW,GAAG,IAAIA,WAAW,GAAG,CAAC,QAAQ,CAACH;AAEzD"}