@webiny/tasks 6.0.0-alpha.5 → 6.0.0-rc.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 (298) hide show
  1. package/README.md +10 -9
  2. package/context.js +43 -21
  3. package/context.js.map +1 -1
  4. package/crud/TaskLogPrivateModel.d.ts +9 -0
  5. package/crud/TaskLogPrivateModel.js +34 -0
  6. package/crud/TaskLogPrivateModel.js.map +1 -0
  7. package/crud/TaskPrivateModel.d.ts +9 -0
  8. package/crud/TaskPrivateModel.js +46 -0
  9. package/crud/TaskPrivateModel.js.map +1 -0
  10. package/crud/crud.tasks.d.ts +1 -1
  11. package/crud/crud.tasks.js +209 -104
  12. package/crud/crud.tasks.js.map +1 -1
  13. package/crud/definition.tasks.d.ts +1 -1
  14. package/crud/definition.tasks.js +9 -18
  15. package/crud/definition.tasks.js.map +1 -1
  16. package/crud/service.tasks.d.ts +1 -1
  17. package/crud/service.tasks.js +31 -36
  18. package/crud/service.tasks.js.map +1 -1
  19. package/decorators/RunnableTaskDecorator.d.ts +31 -0
  20. package/decorators/RunnableTaskDecorator.js +82 -0
  21. package/decorators/RunnableTaskDecorator.js.map +1 -0
  22. package/domain/errors.d.ts +29 -0
  23. package/domain/errors.js +47 -0
  24. package/domain/errors.js.map +1 -0
  25. package/events/TaskAfterCreateEvent.d.ts +6 -0
  26. package/events/TaskAfterCreateEvent.js +10 -0
  27. package/events/TaskAfterCreateEvent.js.map +1 -0
  28. package/events/TaskAfterDeleteEvent.d.ts +6 -0
  29. package/events/TaskAfterDeleteEvent.js +10 -0
  30. package/events/TaskAfterDeleteEvent.js.map +1 -0
  31. package/events/TaskAfterUpdateEvent.d.ts +6 -0
  32. package/events/TaskAfterUpdateEvent.js +10 -0
  33. package/events/TaskAfterUpdateEvent.js.map +1 -0
  34. package/events/TaskBeforeCreateEvent.d.ts +6 -0
  35. package/events/TaskBeforeCreateEvent.js +10 -0
  36. package/events/TaskBeforeCreateEvent.js.map +1 -0
  37. package/events/TaskBeforeDeleteEvent.d.ts +6 -0
  38. package/events/TaskBeforeDeleteEvent.js +10 -0
  39. package/events/TaskBeforeDeleteEvent.js.map +1 -0
  40. package/events/TaskBeforeUpdateEvent.d.ts +6 -0
  41. package/events/TaskBeforeUpdateEvent.js +10 -0
  42. package/events/TaskBeforeUpdateEvent.js.map +1 -0
  43. package/events/abstractions.d.ts +53 -0
  44. package/events/abstractions.js +39 -0
  45. package/events/abstractions.js.map +1 -0
  46. package/events/index.d.ts +7 -0
  47. package/events/index.js +9 -0
  48. package/events/index.js.map +1 -0
  49. package/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
  50. package/features/AbortTask/AbortTaskUseCase.js +11 -0
  51. package/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  52. package/features/AbortTask/abstractions.d.ts +25 -0
  53. package/features/AbortTask/abstractions.js +4 -0
  54. package/features/AbortTask/abstractions.js.map +1 -0
  55. package/features/AbortTask/feature.d.ts +2 -0
  56. package/features/AbortTask/feature.js +11 -0
  57. package/features/AbortTask/feature.js.map +1 -0
  58. package/features/AbortTask/index.d.ts +2 -0
  59. package/features/AbortTask/index.js +4 -0
  60. package/features/AbortTask/index.js.map +1 -0
  61. package/features/GetTask/GetTaskUseCase.d.ts +9 -0
  62. package/features/GetTask/GetTaskUseCase.js +10 -0
  63. package/features/GetTask/GetTaskUseCase.js.map +1 -0
  64. package/features/GetTask/abstractions.d.ts +10 -0
  65. package/features/GetTask/abstractions.js +4 -0
  66. package/features/GetTask/abstractions.js.map +1 -0
  67. package/features/GetTask/feature.d.ts +2 -0
  68. package/features/GetTask/feature.js +11 -0
  69. package/features/GetTask/feature.js.map +1 -0
  70. package/features/GetTask/index.d.ts +2 -0
  71. package/features/GetTask/index.js +4 -0
  72. package/features/GetTask/index.js.map +1 -0
  73. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  74. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +25 -0
  75. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  76. package/features/GetTaskDefinition/abstractions.d.ts +17 -0
  77. package/features/GetTaskDefinition/abstractions.js +4 -0
  78. package/features/GetTaskDefinition/abstractions.js.map +1 -0
  79. package/features/GetTaskDefinition/feature.d.ts +1 -0
  80. package/features/GetTaskDefinition/feature.js +10 -0
  81. package/features/GetTaskDefinition/feature.js.map +1 -0
  82. package/features/GetTaskDefinition/index.d.ts +2 -0
  83. package/features/GetTaskDefinition/index.js +4 -0
  84. package/features/GetTaskDefinition/index.js.map +1 -0
  85. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  86. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -0
  87. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  88. package/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  89. package/features/ListTaskDefinitions/abstractions.js +4 -0
  90. package/features/ListTaskDefinitions/abstractions.js.map +1 -0
  91. package/features/ListTaskDefinitions/feature.d.ts +1 -0
  92. package/features/ListTaskDefinitions/feature.js +10 -0
  93. package/features/ListTaskDefinitions/feature.js.map +1 -0
  94. package/features/ListTaskDefinitions/index.d.ts +2 -0
  95. package/features/ListTaskDefinitions/index.js +4 -0
  96. package/features/ListTaskDefinitions/index.js.map +1 -0
  97. package/features/ListTasks/ListTasksUseCase.d.ts +9 -0
  98. package/features/ListTasks/ListTasksUseCase.js +10 -0
  99. package/features/ListTasks/ListTasksUseCase.js.map +1 -0
  100. package/features/ListTasks/abstractions.d.ts +13 -0
  101. package/features/ListTasks/abstractions.js +4 -0
  102. package/features/ListTasks/abstractions.js.map +1 -0
  103. package/features/ListTasks/feature.d.ts +2 -0
  104. package/features/ListTasks/feature.js +11 -0
  105. package/features/ListTasks/feature.js.map +1 -0
  106. package/features/ListTasks/index.d.ts +2 -0
  107. package/features/ListTasks/index.js +4 -0
  108. package/features/ListTasks/index.js.map +1 -0
  109. package/features/TaskController/TaskController.d.ts +49 -0
  110. package/features/TaskController/TaskController.js +71 -0
  111. package/features/TaskController/TaskController.js.map +1 -0
  112. package/features/TaskController/augmentation.d.ts +60 -0
  113. package/features/TaskController/augmentation.js +3 -0
  114. package/features/TaskController/augmentation.js.map +1 -0
  115. package/features/TaskController/index.d.ts +2 -0
  116. package/features/TaskController/index.js +7 -0
  117. package/features/TaskController/index.js.map +1 -0
  118. package/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  119. package/features/TaskExecutionContext/TaskExecutionContext.js +50 -0
  120. package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  121. package/features/TaskExecutionContext/abstractions.d.ts +26 -0
  122. package/features/TaskExecutionContext/abstractions.js +13 -0
  123. package/features/TaskExecutionContext/abstractions.js.map +1 -0
  124. package/features/TaskExecutionContext/feature.d.ts +1 -0
  125. package/features/TaskExecutionContext/feature.js +10 -0
  126. package/features/TaskExecutionContext/feature.js.map +1 -0
  127. package/features/TaskExecutionContext/index.d.ts +1 -0
  128. package/features/TaskExecutionContext/index.js +3 -0
  129. package/features/TaskExecutionContext/index.js.map +1 -0
  130. package/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
  131. package/features/TriggerTask/TriggerTaskUseCase.js +11 -0
  132. package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  133. package/features/TriggerTask/abstractions.d.ts +28 -0
  134. package/features/TriggerTask/abstractions.js +4 -0
  135. package/features/TriggerTask/abstractions.js.map +1 -0
  136. package/features/TriggerTask/feature.d.ts +2 -0
  137. package/features/TriggerTask/feature.js +11 -0
  138. package/features/TriggerTask/feature.js.map +1 -0
  139. package/features/TriggerTask/index.d.ts +2 -0
  140. package/features/TriggerTask/index.js +4 -0
  141. package/features/TriggerTask/index.js.map +1 -0
  142. package/global.d.ts +1 -0
  143. package/global.js +3 -0
  144. package/global.js.map +1 -0
  145. package/graphql/checkPermissions.d.ts +1 -1
  146. package/graphql/checkPermissions.js +3 -9
  147. package/graphql/checkPermissions.js.map +1 -1
  148. package/graphql/index.d.ts +1 -1
  149. package/graphql/index.js +58 -61
  150. package/graphql/index.js.map +1 -1
  151. package/graphql/utils.d.ts +1 -1
  152. package/graphql/utils.js +8 -17
  153. package/graphql/utils.js.map +1 -1
  154. package/handler/index.d.ts +2 -2
  155. package/handler/index.js +33 -40
  156. package/handler/index.js.map +1 -1
  157. package/handler/register.js +5 -7
  158. package/handler/register.js.map +1 -1
  159. package/handler/types.d.ts +1 -3
  160. package/handler/types.js +1 -5
  161. package/handler/types.js.map +1 -1
  162. package/index.d.ts +5 -6
  163. package/index.js +5 -60
  164. package/index.js.map +1 -1
  165. package/package.json +22 -26
  166. package/plugins/TaskServicePlugin.d.ts +1 -2
  167. package/plugins/TaskServicePlugin.js +2 -9
  168. package/plugins/TaskServicePlugin.js.map +1 -1
  169. package/plugins/index.d.ts +1 -1
  170. package/plugins/index.js +1 -16
  171. package/plugins/index.js.map +1 -1
  172. package/response/DatabaseResponse.d.ts +3 -3
  173. package/response/DatabaseResponse.js +14 -20
  174. package/response/DatabaseResponse.js.map +1 -1
  175. package/response/Response.d.ts +4 -3
  176. package/response/Response.js +20 -31
  177. package/response/Response.js.map +1 -1
  178. package/response/ResponseAbortedResult.d.ts +3 -4
  179. package/response/ResponseAbortedResult.js +3 -11
  180. package/response/ResponseAbortedResult.js.map +1 -1
  181. package/response/ResponseContinueResult.d.ts +4 -5
  182. package/response/ResponseContinueResult.js +3 -11
  183. package/response/ResponseContinueResult.js.map +1 -1
  184. package/response/ResponseDoneResult.d.ts +4 -6
  185. package/response/ResponseDoneResult.js +3 -11
  186. package/response/ResponseDoneResult.js.map +1 -1
  187. package/response/ResponseErrorResult.d.ts +3 -4
  188. package/response/ResponseErrorResult.js +3 -11
  189. package/response/ResponseErrorResult.js.map +1 -1
  190. package/response/TaskResponse.d.ts +7 -6
  191. package/response/TaskResponse.js +5 -12
  192. package/response/TaskResponse.js.map +1 -1
  193. package/response/abstractions/Response.d.ts +7 -7
  194. package/response/abstractions/Response.js +1 -5
  195. package/response/abstractions/Response.js.map +1 -1
  196. package/response/abstractions/ResponseAbortedResult.d.ts +3 -3
  197. package/response/abstractions/ResponseAbortedResult.js +1 -5
  198. package/response/abstractions/ResponseAbortedResult.js.map +1 -1
  199. package/response/abstractions/ResponseBaseResult.d.ts +2 -3
  200. package/response/abstractions/ResponseBaseResult.js +1 -5
  201. package/response/abstractions/ResponseBaseResult.js.map +1 -1
  202. package/response/abstractions/ResponseContinueResult.d.ts +4 -4
  203. package/response/abstractions/ResponseContinueResult.js +1 -5
  204. package/response/abstractions/ResponseContinueResult.js.map +1 -1
  205. package/response/abstractions/ResponseDoneResult.d.ts +5 -6
  206. package/response/abstractions/ResponseDoneResult.js +1 -5
  207. package/response/abstractions/ResponseDoneResult.js.map +1 -1
  208. package/response/abstractions/ResponseErrorResult.d.ts +4 -5
  209. package/response/abstractions/ResponseErrorResult.js +1 -5
  210. package/response/abstractions/ResponseErrorResult.js.map +1 -1
  211. package/response/abstractions/TaskResponse.d.ts +8 -30
  212. package/response/abstractions/TaskResponse.js +1 -5
  213. package/response/abstractions/TaskResponse.js.map +1 -1
  214. package/response/abstractions/index.d.ts +7 -7
  215. package/response/abstractions/index.js +7 -82
  216. package/response/abstractions/index.js.map +1 -1
  217. package/response/index.d.ts +7 -7
  218. package/response/index.js +7 -82
  219. package/response/index.js.map +1 -1
  220. package/runner/TaskControl.d.ts +4 -4
  221. package/runner/TaskControl.js +61 -39
  222. package/runner/TaskControl.js.map +1 -1
  223. package/runner/TaskEventValidation.d.ts +2 -2
  224. package/runner/TaskEventValidation.js +11 -20
  225. package/runner/TaskEventValidation.js.map +1 -1
  226. package/runner/TaskManager.d.ts +7 -10
  227. package/runner/TaskManager.js +19 -39
  228. package/runner/TaskManager.js.map +1 -1
  229. package/runner/TaskManagerStore.d.ts +7 -7
  230. package/runner/TaskManagerStore.js +16 -25
  231. package/runner/TaskManagerStore.js.map +1 -1
  232. package/runner/TaskRunner.d.ts +5 -6
  233. package/runner/TaskRunner.js +9 -31
  234. package/runner/TaskRunner.js.map +1 -1
  235. package/runner/abstractions/TaskControl.d.ts +4 -4
  236. package/runner/abstractions/TaskControl.js +1 -5
  237. package/runner/abstractions/TaskControl.js.map +1 -1
  238. package/runner/abstractions/TaskEventValidation.d.ts +1 -1
  239. package/runner/abstractions/TaskEventValidation.js +1 -5
  240. package/runner/abstractions/TaskEventValidation.js.map +1 -1
  241. package/runner/abstractions/TaskManager.d.ts +4 -4
  242. package/runner/abstractions/TaskManager.js +1 -5
  243. package/runner/abstractions/TaskManager.js.map +1 -1
  244. package/runner/abstractions/TaskManagerStore.d.ts +11 -11
  245. package/runner/abstractions/TaskManagerStore.js +1 -5
  246. package/runner/abstractions/TaskManagerStore.js.map +1 -1
  247. package/runner/abstractions/TaskRunner.d.ts +3 -3
  248. package/runner/abstractions/TaskRunner.js +1 -5
  249. package/runner/abstractions/TaskRunner.js.map +1 -1
  250. package/runner/abstractions/index.d.ts +5 -5
  251. package/runner/abstractions/index.js +5 -60
  252. package/runner/abstractions/index.js.map +1 -1
  253. package/runner/index.d.ts +1 -1
  254. package/runner/index.js +1 -16
  255. package/runner/index.js.map +1 -1
  256. package/service/EventBridgeEventTransportPlugin.d.ts +4 -5
  257. package/service/EventBridgeEventTransportPlugin.js +8 -17
  258. package/service/EventBridgeEventTransportPlugin.js.map +1 -1
  259. package/service/StepFunctionServicePlugin.d.ts +4 -5
  260. package/service/StepFunctionServicePlugin.js +11 -21
  261. package/service/StepFunctionServicePlugin.js.map +1 -1
  262. package/service/createService.d.ts +2 -2
  263. package/service/createService.js +7 -18
  264. package/service/createService.js.map +1 -1
  265. package/service/index.d.ts +3 -3
  266. package/service/index.js +6 -27
  267. package/service/index.js.map +1 -1
  268. package/tasks/testingRunTask.d.ts +10 -1
  269. package/tasks/testingRunTask.js +13 -18
  270. package/tasks/testingRunTask.js.map +1 -1
  271. package/types.d.ts +32 -214
  272. package/types.js +5 -56
  273. package/types.js.map +1 -1
  274. package/utils/ObjectUpdater.js +4 -11
  275. package/utils/ObjectUpdater.js.map +1 -1
  276. package/utils/getErrorProperties.d.ts +1 -1
  277. package/utils/getErrorProperties.js +3 -10
  278. package/utils/getErrorProperties.js.map +1 -1
  279. package/utils/getObjectProperties.js +1 -8
  280. package/utils/getObjectProperties.js.map +1 -1
  281. package/utils/index.d.ts +3 -3
  282. package/utils/index.js +3 -38
  283. package/utils/index.js.map +1 -1
  284. package/crud/model.d.ts +0 -5
  285. package/crud/model.js +0 -216
  286. package/crud/model.js.map +0 -1
  287. package/crud/where.d.ts +0 -1
  288. package/crud/where.js +0 -33
  289. package/crud/where.js.map +0 -1
  290. package/task/index.d.ts +0 -2
  291. package/task/index.js +0 -29
  292. package/task/index.js.map +0 -1
  293. package/task/input.d.ts +0 -15
  294. package/task/input.js +0 -21
  295. package/task/input.js.map +0 -1
  296. package/task/plugin.d.ts +0 -36
  297. package/task/plugin.js +0 -106
  298. package/task/plugin.js.map +0 -1
package/graphql/index.js CHANGED
@@ -1,17 +1,12 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createBackgroundTaskGraphQL = void 0;
7
- var _handlerGraphql = require("@webiny/handler-graphql");
8
- var _renderSortEnum = require("@webiny/api-headless-cms/utils/renderSortEnum");
9
- var _handler = require("@webiny/handler");
10
- var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
11
- var _createFieldTypePluginRecords = require("@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords");
12
- var _utils = require("./utils");
13
- var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
14
- var _checkPermissions = require("./checkPermissions");
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { renderSortEnum } from "@webiny/api-headless-cms/utils/renderSortEnum.js";
3
+ import { ContextPlugin } from "@webiny/handler";
4
+ import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
5
+ import { createFieldTypePluginRecords } from "@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords.js";
6
+ import { emptyResolver, resolve, resolveList } from "./utils.js";
7
+ import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
8
+ import { checkPermissions } from "./checkPermissions.js";
9
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
15
10
  const createWebinyBackgroundTaskDefinitionEnum = items => {
16
11
  if (items.length === 0) {
17
12
  return "Empty";
@@ -21,67 +16,62 @@ const createWebinyBackgroundTaskDefinitionEnum = items => {
21
16
  }).map(definition => definition.id).join("\n");
22
17
  };
23
18
  const createGraphQL = () => {
24
- const plugin = new _handler.ContextPlugin(async ctx => {
19
+ const plugin = new ContextPlugin(async ctx => {
25
20
  if (!ctx.tenancy.getCurrentTenant()) {
26
21
  return;
27
- } else if (!ctx.i18n.getDefaultLocale()) {
28
- return;
29
22
  }
30
23
  const taskModel = await ctx.tasks.getTaskModel();
31
24
  const logModel = await ctx.tasks.getLogModel();
25
+ const listModels = ctx.container.resolve(ListModelsUseCase);
32
26
  const models = await ctx.security.withoutAuthorization(async () => {
33
- return (await ctx.cms.listModels()).filter(model => {
34
- if (model.fields.length === 0) {
35
- return false;
36
- } else if (model.isPrivate) {
37
- return false;
38
- }
39
- return true;
27
+ const modelsResult = await listModels.execute({
28
+ includePrivate: false
40
29
  });
30
+ return modelsResult.value.filter(model => model.fields.length > 0);
41
31
  });
42
- const fieldTypePlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(ctx.plugins);
43
- const taskFields = (0, _renderFields.renderFields)({
32
+ const fieldTypePlugins = createFieldTypePluginRecords(ctx.plugins);
33
+ const taskFields = renderFields({
44
34
  models,
45
35
  model: taskModel,
46
36
  fields: taskModel.fields,
47
37
  type: "manage",
48
38
  fieldTypePlugins
49
39
  });
50
- const logFields = (0, _renderFields.renderFields)({
40
+ const logFields = renderFields({
51
41
  models,
52
42
  model: logModel,
53
43
  fields: logModel.fields.filter(field => field.fieldId !== "task"),
54
44
  type: "manage",
55
45
  fieldTypePlugins
56
46
  });
57
- const listTasksFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
47
+ const listTasksFilterFieldsRender = renderListFilterFields({
58
48
  model: taskModel,
59
49
  fields: taskModel.fields,
60
50
  type: "manage",
61
51
  fieldTypePlugins,
62
52
  excludeFields: ["entryId"]
63
53
  });
64
- const listLogsFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
54
+ const listLogsFilterFieldsRender = renderListFilterFields({
65
55
  model: logModel,
66
56
  fields: logModel.fields,
67
57
  type: "manage",
68
58
  fieldTypePlugins,
69
59
  excludeFields: ["entryId"]
70
60
  });
71
- const sortTasksEnumRender = (0, _renderSortEnum.renderSortEnum)({
61
+ const sortTasksEnumRender = renderSortEnum({
72
62
  model: taskModel,
73
63
  fields: taskModel.fields,
74
64
  fieldTypePlugins,
75
65
  sorterPlugins: []
76
66
  });
77
- const sortLogsEnumRender = (0, _renderSortEnum.renderSortEnum)({
67
+ const sortLogsEnumRender = renderSortEnum({
78
68
  model: logModel,
79
69
  fields: logModel.fields,
80
70
  fieldTypePlugins,
81
71
  sorterPlugins: []
82
72
  });
83
73
  const taskDefinitions = ctx.tasks.listDefinitions();
84
- const plugin = new _handlerGraphql.GraphQLSchemaPlugin({
74
+ const plugin = new GraphQLSchemaPlugin({
85
75
  typeDefs: /* GraphQL */`
86
76
  type WebinyBackgroundTaskError {
87
77
  message: String
@@ -89,7 +79,7 @@ const createGraphQL = () => {
89
79
  data: JSON
90
80
  stack: String
91
81
  }
92
-
82
+
93
83
  ${taskFields.map(f => f.typeDefs).join("\n")}
94
84
  ${logFields.map(f => f.typeDefs).join("\n")}
95
85
 
@@ -122,7 +112,7 @@ const createGraphQL = () => {
122
112
  meta: WebinyBackgroundTaskMeta
123
113
  error: WebinyBackgroundTaskError
124
114
  }
125
-
115
+
126
116
  type WebinyBackgroundTaskLog {
127
117
  id: String!
128
118
  createdOn: DateTime!
@@ -130,7 +120,7 @@ const createGraphQL = () => {
130
120
  task: WebinyBackgroundTask!
131
121
  ${logFields.map(f => f.fields).join("\n")}
132
122
  }
133
-
123
+
134
124
  type WebinyBackgroundTaskLogListResponse {
135
125
  data: [WebinyBackgroundTaskLog!]
136
126
  meta: WebinyBackgroundTaskMeta
@@ -141,7 +131,6 @@ const createGraphQL = () => {
141
131
  id: String!
142
132
  title: String!
143
133
  description: String
144
- fields: JSON
145
134
  }
146
135
 
147
136
  type WebinyBackgroundTaskListDefinitionsResponse {
@@ -166,17 +155,17 @@ const createGraphQL = () => {
166
155
  }
167
156
 
168
157
  input WebinyBackgroundTaskListWhereInput {
169
- ${listTasksFilterFieldsRender}
158
+ ${listTasksFilterFieldsRender.allFiltersAsString() || "_empty: String"}
170
159
  }
171
-
160
+
172
161
  input WebinyBackgroundTaskLogListWhereInput {
173
- ${listLogsFilterFieldsRender}
162
+ ${listLogsFilterFieldsRender.allFiltersAsString() || "_empty: String"}
174
163
  }
175
164
 
176
165
  enum WebinyBackgroundTaskListSorter {
177
166
  ${sortTasksEnumRender}
178
167
  }
179
-
168
+
180
169
  enum WebinyBackgroundTaskLogListSorter {
181
170
  ${sortLogsEnumRender}
182
171
  }
@@ -211,7 +200,7 @@ const createGraphQL = () => {
211
200
  search: String
212
201
  ): WebinyBackgroundTaskListResponse!
213
202
  listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
214
-
203
+
215
204
  listLogs(
216
205
  where: WebinyBackgroundTaskLogListWhereInput
217
206
  sort: [WebinyBackgroundTaskLogListSorter!]
@@ -229,34 +218,34 @@ const createGraphQL = () => {
229
218
  `,
230
219
  resolvers: {
231
220
  Query: {
232
- backgroundTasks: _utils.emptyResolver
221
+ backgroundTasks: emptyResolver
233
222
  },
234
223
  Mutation: {
235
- backgroundTasks: _utils.emptyResolver
224
+ backgroundTasks: emptyResolver
236
225
  },
237
226
  WebinyBackgroundTaskQuery: {
238
227
  /**
239
228
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
240
229
  */
241
230
  getTask: async (_, args, context) => {
242
- return (0, _utils.resolve)(async () => {
243
- await (0, _checkPermissions.checkPermissions)(context, {
231
+ return resolve(async () => {
232
+ await checkPermissions(context, {
244
233
  rwd: "r"
245
234
  });
246
235
  return await context.tasks.getTask(args.id);
247
236
  });
248
237
  },
249
238
  listTasks: async (_, args, context) => {
250
- return (0, _utils.resolveList)(async () => {
251
- await (0, _checkPermissions.checkPermissions)(context, {
239
+ return resolveList(async () => {
240
+ await checkPermissions(context, {
252
241
  rwd: "r"
253
242
  });
254
243
  return await context.tasks.listTasks(args);
255
244
  });
256
245
  },
257
246
  listDefinitions: async (_, __, context) => {
258
- return (0, _utils.resolve)(async () => {
259
- await (0, _checkPermissions.checkPermissions)(context, {
247
+ return resolve(async () => {
248
+ await checkPermissions(context, {
260
249
  rwd: "r"
261
250
  });
262
251
  const result = context.tasks.listDefinitions();
@@ -269,8 +258,8 @@ const createGraphQL = () => {
269
258
  });
270
259
  },
271
260
  listLogs: async (_, args, context) => {
272
- return (0, _utils.resolveList)(async () => {
273
- await (0, _checkPermissions.checkPermissions)(context, {
261
+ return resolveList(async () => {
262
+ await checkPermissions(context, {
274
263
  rwd: "r"
275
264
  });
276
265
  return await context.tasks.listLogs(args);
@@ -282,32 +271,40 @@ const createGraphQL = () => {
282
271
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
283
272
  */
284
273
  abortTask: async (_, args, context) => {
285
- await (0, _checkPermissions.checkPermissions)(context, {
274
+ await checkPermissions(context, {
286
275
  rwd: "w"
287
276
  });
288
- return (0, _utils.resolve)(async () => {
289
- return await context.tasks.abort(args);
277
+ return resolve(async () => {
278
+ const result = await context.tasks.abort(args);
279
+ if (result.isOk()) {
280
+ return result.value;
281
+ }
282
+ throw result.error;
290
283
  });
291
284
  },
292
285
  /**
293
286
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
294
287
  */
295
288
  triggerTask: async (_, args, context) => {
296
- await (0, _checkPermissions.checkPermissions)(context, {
289
+ await checkPermissions(context, {
297
290
  rwd: "w"
298
291
  });
299
- return (0, _utils.resolve)(async () => {
300
- return await context.tasks.trigger(args);
292
+ return resolve(async () => {
293
+ const result = await context.tasks.trigger(args);
294
+ if (result.isOk()) {
295
+ return result.value;
296
+ }
297
+ throw result.error;
301
298
  });
302
299
  },
303
300
  /**
304
301
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
305
302
  */
306
303
  deleteTask: async (_, args, context) => {
307
- await (0, _checkPermissions.checkPermissions)(context, {
304
+ await checkPermissions(context, {
308
305
  rwd: "d"
309
306
  });
310
- return (0, _utils.resolve)(async () => {
307
+ return resolve(async () => {
311
308
  return await context.tasks.deleteTask(args.id);
312
309
  });
313
310
  }
@@ -338,14 +335,14 @@ const createGraphQL = () => {
338
335
  }
339
336
  }
340
337
  });
338
+ plugin.name = "tasks.graphql.schema";
341
339
  ctx.plugins.register(plugin);
342
340
  });
343
341
  plugin.name = "tasks.graphql";
344
342
  return plugin;
345
343
  };
346
- const createBackgroundTaskGraphQL = () => {
344
+ export const createBackgroundTaskGraphQL = () => {
347
345
  return [createGraphQL()];
348
346
  };
349
- exports.createBackgroundTaskGraphQL = createBackgroundTaskGraphQL;
350
347
 
351
348
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_handlerGraphql","require","_renderSortEnum","_handler","_renderListFilterFields","_createFieldTypePluginRecords","_utils","_renderFields","_checkPermissions","createWebinyBackgroundTaskDefinitionEnum","items","length","filter","item","isPrivate","map","definition","id","join","createGraphQL","plugin","ContextPlugin","ctx","tenancy","getCurrentTenant","i18n","getDefaultLocale","taskModel","tasks","getTaskModel","logModel","getLogModel","models","security","withoutAuthorization","cms","listModels","model","fields","fieldTypePlugins","createFieldTypePluginRecords","plugins","taskFields","renderFields","type","logFields","field","fieldId","listTasksFilterFieldsRender","renderListFilterFields","excludeFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sorterPlugins","sortLogsEnumRender","taskDefinitions","listDefinitions","GraphQLSchemaPlugin","typeDefs","f","resolvers","Query","backgroundTasks","emptyResolver","Mutation","WebinyBackgroundTaskQuery","getTask","_","args","context","resolve","checkPermissions","rwd","listTasks","resolveList","__","result","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","sort","limit","where","task","WebinyBackgroundTaskLog","register","name","createBackgroundTaskGraphQL","exports"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITask,\n ITaskDefinition,\n ITaskLog\n} from \"~/types\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { emptyResolver, resolve, resolveList } from \"./utils\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { checkPermissions } from \"./checkPermissions\";\nimport type { Plugin } from \"@webiny/plugins/types\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createWebinyBackgroundTaskDefinitionEnum = (items: ITaskDefinition[]): string => {\n if (items.length === 0) {\n return \"Empty\";\n }\n return items\n .filter(item => {\n return !item.isPrivate;\n })\n .map(definition => definition.id)\n .join(\"\\n\");\n};\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n } else if (!ctx.i18n.getDefaultLocale()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const models = await ctx.security.withoutAuthorization(async () => {\n return (await ctx.cms.listModels()).filter(model => {\n if (model.fields.length === 0) {\n return false;\n } else if (model.isPrivate) {\n return false;\n }\n return true;\n });\n });\n const fieldTypePlugins = createFieldTypePluginRecords(ctx.plugins);\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldTypePlugins\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const taskDefinitions = ctx.tasks.listDefinitions();\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n \n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n \n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n \n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n fields: JSON\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender}\n }\n \n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n \n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n enum WebinyBackgroundTaskDefinitionEnum {\n ${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n \n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve(async () => {\n return await context.tasks.abort(args);\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve(async () => {\n return await context.tasks.trigger(args);\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"mappings":"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C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBjB,UAAU,CAAC3B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACzC,IAAI,CAAC,IAAI,CAAC;AAC5D,kBAAkB2B,SAAS,CAAC9B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACzC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBwB,UAAU,CAAC3B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACtB,MAAM,CAAC,CAACpB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB2B,SAAS,CAAC9B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACtB,MAAM,CAAC,CAACpB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB8B,2BAA2B;AACjD;AACA;AACA;AACA,sBAAsBG,0BAA0B;AAChD;AACA;AACA;AACA,sBAAsBC,mBAAmB;AACzC;AACA;AACA;AACA,sBAAsBG,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB9C,wCAAwC,CAAC+C,eAAe,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;MACDK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","ignoreList":[]}
1
+ {"version":3,"names":["GraphQLSchemaPlugin","renderSortEnum","ContextPlugin","renderListFilterFields","createFieldTypePluginRecords","emptyResolver","resolve","resolveList","renderFields","checkPermissions","ListModelsUseCase","createWebinyBackgroundTaskDefinitionEnum","items","length","filter","item","isPrivate","map","definition","id","join","createGraphQL","plugin","ctx","tenancy","getCurrentTenant","taskModel","tasks","getTaskModel","logModel","getLogModel","listModels","container","models","security","withoutAuthorization","modelsResult","execute","includePrivate","value","model","fields","fieldTypePlugins","plugins","taskFields","type","logFields","field","fieldId","listTasksFilterFieldsRender","excludeFields","listLogsFilterFieldsRender","sortTasksEnumRender","sorterPlugins","sortLogsEnumRender","taskDefinitions","listDefinitions","typeDefs","f","allFiltersAsString","resolvers","Query","backgroundTasks","Mutation","WebinyBackgroundTaskQuery","getTask","_","args","context","rwd","listTasks","__","result","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","isOk","error","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","sort","limit","where","task","WebinyBackgroundTaskLog","name","register","createBackgroundTaskGraphQL"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/types.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createWebinyBackgroundTaskDefinitionEnum = (items: TaskDefinition.Interface[]): string => {\n if (items.length === 0) {\n return \"Empty\";\n }\n return items\n .filter(item => {\n return !item.isPrivate;\n })\n .map(definition => definition.id)\n .join(\"\\n\");\n};\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const listModels = ctx.container.resolve(ListModelsUseCase);\n\n const models = await ctx.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n const fieldTypePlugins = createFieldTypePluginRecords(ctx.plugins);\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldTypePlugins\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const taskDefinitions = ctx.tasks.listDefinitions();\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n enum WebinyBackgroundTaskDefinitionEnum {\n ${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.abort(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.trigger(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n\n plugin.name = \"tasks.graphql.schema\";\n\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"mappings":"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CAACyC,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACrC,IAAI,CAAC,IAAI,CAAC;AAC5D,kBAAkB0B,SAAS,CAAC7B,GAAG,CAACyC,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACrC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBwB,UAAU,CAAC3B,GAAG,CAACyC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB0B,SAAS,CAAC7B,GAAG,CAACyC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB6B,2BAA2B,CAACU,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AAC1F;AACA;AACA;AACA,sBAAsBR,0BAA0B,CAACQ,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AACzF;AACA;AACA;AACA,sBAAsBP,mBAAmB;AACzC;AACA;AACA;AACA,sBAAsBE,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB3C,wCAAwC,CAAC4C,eAAe,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;MAC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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
2
- import type { CmsEntryMeta } from "@webiny/api-headless-cms/types";
2
+ import type { CmsEntryMeta } from "@webiny/api-headless-cms/types/index.js";
3
3
  export declare const emptyResolver: () => {};
4
4
  interface ResolveCallable<T = any> {
5
5
  (): Promise<T>;
package/graphql/utils.js CHANGED
@@ -1,28 +1,19 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.resolveList = exports.resolve = exports.emptyResolver = void 0;
7
- var _handlerGraphql = require("@webiny/handler-graphql");
8
- const emptyResolver = () => ({});
9
- exports.emptyResolver = emptyResolver;
10
- const resolve = async fn => {
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
2
+ export const emptyResolver = () => ({});
3
+ export const resolve = async fn => {
11
4
  try {
12
- return new _handlerGraphql.Response(await fn());
5
+ return new Response(await fn());
13
6
  } catch (ex) {
14
- return new _handlerGraphql.ErrorResponse(ex);
7
+ return new ErrorResponse(ex);
15
8
  }
16
9
  };
17
- exports.resolve = resolve;
18
- const resolveList = async fn => {
10
+ export const resolveList = async fn => {
19
11
  try {
20
12
  const result = await fn();
21
- return new _handlerGraphql.ListResponse(result.items, result.meta);
13
+ return new ListResponse(result.items, result.meta);
22
14
  } catch (ex) {
23
- return new _handlerGraphql.ListErrorResponse(ex);
15
+ return new ListErrorResponse(ex);
24
16
  }
25
17
  };
26
- exports.resolveList = resolveList;
27
18
 
28
19
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_handlerGraphql","require","emptyResolver","exports","resolve","fn","Response","ex","ErrorResponse","resolveList","result","ListResponse","items","meta","ListErrorResponse"],"sources":["utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGO,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAACC,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAMjC,MAAME,OAAO,GAAG,MAAgBC,EAAsB,IAAK;EAC9D,IAAI;IACA,OAAO,IAAIC,wBAAQ,CAAC,MAAMD,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOE,EAAE,EAAE;IACT,OAAO,IAAIC,6BAAa,CAACD,EAAE,CAAC;EAChC;AACJ,CAAC;AAACJ,OAAA,CAAAC,OAAA,GAAAA,OAAA;AAOK,MAAMK,WAAW,GAAG,MAAOJ,EAAmB,IAAK;EACtD,IAAI;IACA,MAAMK,MAAM,GAAI,MAAML,EAAE,CAAC,CAAiB;IAC1C,OAAO,IAAIM,4BAAY,CAACD,MAAM,CAACE,KAAK,EAAEF,MAAM,CAACG,IAAI,CAAC;EACtD,CAAC,CAAC,OAAON,EAAE,EAAE;IACT,OAAO,IAAIO,iCAAiB,CAACP,EAAE,CAAC;EACpC;AACJ,CAAC;AAACJ,OAAA,CAAAM,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["ErrorResponse","ListErrorResponse","ListResponse","Response","emptyResolver","resolve","fn","ex","resolveList","result","items","meta"],"sources":["utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,QAAQ,QAAQ,yBAAyB;AAGlG,OAAO,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAMvC,OAAO,MAAMC,OAAO,GAAG,MAAgBC,EAAsB,IAAK;EAC9D,IAAI;IACA,OAAO,IAAIH,QAAQ,CAAC,MAAMG,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOC,EAAE,EAAE;IACT,OAAO,IAAIP,aAAa,CAACO,EAAE,CAAC;EAChC;AACJ,CAAC;AAOD,OAAO,MAAMC,WAAW,GAAG,MAAOF,EAAmB,IAAK;EACtD,IAAI;IACA,MAAMG,MAAM,GAAI,MAAMH,EAAE,CAAC,CAAiB;IAC1C,OAAO,IAAIJ,YAAY,CAACO,MAAM,CAACC,KAAK,EAAED,MAAM,CAACE,IAAI,CAAC;EACtD,CAAC,CAAC,OAAOJ,EAAE,EAAE;IACT,OAAO,IAAIN,iBAAiB,CAACM,EAAE,CAAC;EACpC;AACJ,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import type { APIGatewayProxyResult, Context as LambdaContext } from "@webiny/aws-sdk/types";
2
- import type { HandlerParams, ITaskRawEvent } from "./types";
1
+ import type { APIGatewayProxyResult, Context as LambdaContext } from "@webiny/aws-sdk/types/index.js";
2
+ import type { HandlerParams, ITaskRawEvent } from "../handler/types.js";
3
3
  export interface HandlerCallable {
4
4
  (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
5
5
  }
package/handler/index.js CHANGED
@@ -1,54 +1,50 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createHandler = void 0;
7
- var _handler = require("@webiny/handler");
8
- var _plugins = require("@webiny/handler-aws/plugins");
9
- var _execute = require("@webiny/handler-aws/execute");
10
- var _types = require("../types");
11
- var _runner = require("../runner");
12
- var _utils = require("@webiny/handler-aws/utils");
13
- var _TaskEventValidation = require("../runner/TaskEventValidation");
1
+ import { createHandler as createBaseHandler } from "@webiny/handler";
2
+ import { registerDefaultPlugins } from "@webiny/handler-aws/plugins/index.js";
3
+ import { execute } from "@webiny/handler-aws/execute.js";
4
+ import { TaskRunner } from "../runner/index.js";
5
+ import { timerFactory } from "@webiny/handler-aws/utils/index.js";
6
+ import { TaskEventValidation } from "../runner/TaskEventValidation.js";
7
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
14
8
  const url = "/webiny-background-task-event";
15
- const createHandler = params => {
9
+ export const createHandler = params => {
16
10
  return async (event, context) => {
17
- const app = (0, _handler.createHandler)({
11
+ const app = createBaseHandler({
18
12
  ...params,
19
13
  options: {
20
14
  logger: params.debug === true,
21
15
  ...(params.options || {})
22
16
  }
23
17
  });
24
- (0, _plugins.registerDefaultPlugins)(app.webiny);
18
+ registerDefaultPlugins(app.webiny);
25
19
  app.addHook("preSerialization", async (_, __, payload) => {
26
20
  if (!payload.body) {
27
21
  return payload;
28
22
  }
29
23
  return payload.body;
30
24
  });
31
- app.setErrorHandler(async (error, _, reply) => {
32
- app.__webiny_raw_result = {
33
- error: {
34
- message: error.message,
35
- code: error.code,
36
- data: error.data
37
- },
38
- status: _types.TaskResponseStatus.ERROR
39
- };
40
- return reply.send();
41
- });
42
- app.post(url, async (_, reply) => {
43
- const handler = new _runner.TaskRunner(
44
- /**
45
- * We can safely cast because we know that the context is of type tasks/Context
46
- */
47
- app.webiny, (0, _utils.timerFactory)(context), new _TaskEventValidation.TaskEventValidation());
48
- app.__webiny_raw_result = await handler.run(event);
49
- return reply.send({});
25
+ await app.register(async taskApp => {
26
+ taskApp.setErrorHandler(async (error, _, reply) => {
27
+ app.__webiny_raw_result = {
28
+ error: {
29
+ message: error.message,
30
+ code: error.code,
31
+ data: error.data
32
+ },
33
+ status: TaskResultStatus.ERROR
34
+ };
35
+ return reply.send();
36
+ });
37
+ taskApp.post(url, async (_, reply) => {
38
+ const handler = new TaskRunner(
39
+ /**
40
+ * We can safely cast because we know that the context is of type tasks/Context
41
+ */
42
+ app.webiny, timerFactory(context), new TaskEventValidation());
43
+ app.__webiny_raw_result = await handler.run(event);
44
+ return reply.send({});
45
+ });
50
46
  });
51
- return (0, _execute.execute)({
47
+ return execute({
52
48
  app,
53
49
  url,
54
50
  payload: {
@@ -56,14 +52,11 @@ const createHandler = params => {
56
52
  headers: {
57
53
  ["x-tenant"]: event.tenant,
58
54
  ["x-webiny-cms-endpoint"]: event.endpoint,
59
- ["x-webiny-cms-locale"]: event.locale,
60
- ["x-i18n-locale"]: event.locale,
61
- ["accept-language"]: event.locale
55
+ ["accept-language"]: "en-US"
62
56
  }
63
57
  }
64
58
  });
65
59
  };
66
60
  };
67
- exports.createHandler = createHandler;
68
61
 
69
62
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_handler","require","_plugins","_execute","_types","_runner","_utils","_TaskEventValidation","url","createHandler","params","event","context","app","createBaseHandler","options","logger","debug","registerDefaultPlugins","webiny","addHook","_","__","payload","body","setErrorHandler","error","reply","__webiny_raw_result","message","code","data","status","TaskResponseStatus","ERROR","send","post","handler","TaskRunner","timerFactory","TaskEventValidation","run","execute","headers","tenant","endpoint","locale","exports"],"sources":["index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins\";\nimport { execute } from \"@webiny/handler-aws/execute\";\nimport type { APIGatewayProxyResult, Context as LambdaContext } from \"@webiny/aws-sdk/types\";\nimport type { Context } from \"~/types\";\nimport { TaskResponseStatus } from \"~/types\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types\";\nimport { TaskRunner } from \"~/runner\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n app.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResponseStatus.ERROR\n };\n return reply.send();\n });\n\n app.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"x-webiny-cms-locale\"]: event.locale,\n [\"x-i18n-locale\"]: event.locale,\n [\"accept-language\"]: event.locale\n }\n }\n });\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AAEA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAMA,MAAMO,GAAG,GAAG,+BAA+B;AAEpC,MAAMC,aAAa,GAAIC,MAAqB,IAAsB;EACrE,OAAO,OAAOC,KAAK,EAAEC,OAAO,KAAK;IAC7B,MAAMC,GAAG,GAAG,IAAAC,sBAAiB,EAAC;MAC1B,GAAGJ,MAAM;MACTK,OAAO,EAAE;QACLC,MAAM,EAAEN,MAAM,CAACO,KAAK,KAAK,IAAI;QAC7B,IAAIP,MAAM,CAACK,OAAO,IAAI,CAAC,CAAC;MAC5B;IACJ,CAAC,CAAC;IAEF,IAAAG,+BAAsB,EAACL,GAAG,CAACM,MAAM,CAAC;IAElCN,GAAG,CAACO,OAAO,CAAC,kBAAkB,EAAE,OAAOC,CAAC,EAAEC,EAAE,EAAEC,OAA4B,KAAK;MAC3E,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;QACf,OAAOD,OAAO;MAClB;MACA,OAAOA,OAAO,CAACC,IAAI;IACvB,CAAC,CAAC;IAEFX,GAAG,CAACY,eAAe,CAAc,OAAOC,KAAK,EAAEL,CAAC,EAAEM,KAAK,KAAK;MACxDd,GAAG,CAACe,mBAAmB,GAAG;QACtBF,KAAK,EAAE;UACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;UACtBC,IAAI,EAAEJ,KAAK,CAACI,IAAI;UAChBC,IAAI,EAAEL,KAAK,CAACK;QAChB,CAAC;QACDC,MAAM,EAAEC,yBAAkB,CAACC;MAC/B,CAAC;MACD,OAAOP,KAAK,CAACQ,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFtB,GAAG,CAACuB,IAAI,CAAC5B,GAAG,EAAE,OAAOa,CAAC,EAAEM,KAAK,KAAK;MAC9B,MAAMU,OAAO,GAAG,IAAIC,kBAAU;MAC1B;AAChB;AACA;MACgBzB,GAAG,CAACM,MAAM,EACV,IAAAoB,mBAAY,EAAC3B,OAAO,CAAC,EACrB,IAAI4B,wCAAmB,CAAC,CAC5B,CAAC;MAED3B,GAAG,CAACe,mBAAmB,GAAG,MAAMS,OAAO,CAACI,GAAG,CAAC9B,KAAK,CAAC;MAClD,OAAOgB,KAAK,CAACQ,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,IAAAO,gBAAO,EAAC;MACX7B,GAAG;MACHL,GAAG;MACHe,OAAO,EAAE;QACL,GAAGZ,KAAK;QACRgC,OAAO,EAAE;UACL,CAAC,UAAU,GAAGhC,KAAK,CAACiC,MAAM;UAC1B,CAAC,uBAAuB,GAAGjC,KAAK,CAACkC,QAAQ;UACzC,CAAC,qBAAqB,GAAGlC,KAAK,CAACmC,MAAM;UACrC,CAAC,eAAe,GAAGnC,KAAK,CAACmC,MAAM;UAC/B,CAAC,iBAAiB,GAAGnC,KAAK,CAACmC;QAC/B;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAACC,OAAA,CAAAtC,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["createHandler","createBaseHandler","registerDefaultPlugins","execute","TaskRunner","timerFactory","TaskEventValidation","TaskResultStatus","url","params","event","context","app","options","logger","debug","webiny","addHook","_","__","payload","body","register","taskApp","setErrorHandler","error","reply","__webiny_raw_result","message","code","data","status","ERROR","send","post","handler","run","headers","tenant","endpoint"],"sources":["index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types.js\";\nimport { TaskRunner } from \"~/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"mappings":"AAAA,SAASA,aAAa,IAAIC,iBAAiB,QAAQ,iBAAiB;AACpE,SAASC,sBAAsB,QAAQ,sCAAsC;AAC7E,SAASC,OAAO,QAAQ,gCAAgC;AAOxD,SAASC,UAAU;AAEnB,SAASC,YAAY,QAAQ,oCAAoC;AACjE,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB,QAAQ,wDAAwD;AAMzF,MAAMC,GAAG,GAAG,+BAA+B;AAE3C,OAAO,MAAMR,aAAa,GAAIS,MAAqB,IAAsB;EACrE,OAAO,OAAOC,KAAK,EAAEC,OAAO,KAAK;IAC7B,MAAMC,GAAG,GAAGX,iBAAiB,CAAC;MAC1B,GAAGQ,MAAM;MACTI,OAAO,EAAE;QACLC,MAAM,EAAEL,MAAM,CAACM,KAAK,KAAK,IAAI;QAC7B,IAAIN,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;MAC5B;IACJ,CAAC,CAAC;IAEFX,sBAAsB,CAACU,GAAG,CAACI,MAAM,CAAC;IAElCJ,GAAG,CAACK,OAAO,CAAC,kBAAkB,EAAE,OAAOC,CAAC,EAAEC,EAAE,EAAEC,OAA4B,KAAK;MAC3E,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;QACf,OAAOD,OAAO;MAClB;MACA,OAAOA,OAAO,CAACC,IAAI;IACvB,CAAC,CAAC;IAEF,MAAMT,GAAG,CAACU,QAAQ,CAAC,MAAMC,OAAO,IAAI;MAChCA,OAAO,CAACC,eAAe,CAAc,OAAOC,KAAK,EAAEP,CAAC,EAAEQ,KAAK,KAAK;QAC5Dd,GAAG,CAACe,mBAAmB,GAAG;UACtBF,KAAK,EAAE;YACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;YACtBC,IAAI,EAAEJ,KAAK,CAACI,IAAI;YAChBC,IAAI,EAAEL,KAAK,CAACK;UAChB,CAAC;UACDC,MAAM,EAAExB,gBAAgB,CAACyB;QAC7B,CAAC;QACD,OAAON,KAAK,CAACO,IAAI,CAAC,CAAC;MACvB,CAAC,CAAC;MAEFV,OAAO,CAACW,IAAI,CAAC1B,GAAG,EAAE,OAAOU,CAAC,EAAEQ,KAAK,KAAK;QAClC,MAAMS,OAAO,GAAG,IAAI/B,UAAU;QAC1B;AACpB;AACA;QACoBQ,GAAG,CAACI,MAAM,EACVX,YAAY,CAACM,OAAO,CAAC,EACrB,IAAIL,mBAAmB,CAAC,CAC5B,CAAC;QAEDM,GAAG,CAACe,mBAAmB,GAAG,MAAMQ,OAAO,CAACC,GAAG,CAAC1B,KAAK,CAAC;QAClD,OAAOgB,KAAK,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC;MACzB,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO9B,OAAO,CAAC;MACXS,GAAG;MACHJ,GAAG;MACHY,OAAO,EAAE;QACL,GAAGV,KAAK;QACR2B,OAAO,EAAE;UACL,CAAC,UAAU,GAAG3B,KAAK,CAAC4B,MAAM;UAC1B,CAAC,uBAAuB,GAAG5B,KAAK,CAAC6B,QAAQ;UACzC,CAAC,iBAAiB,GAAG;QACzB;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC","ignoreList":[]}