@webiny/tasks 0.0.0-unstable.2696f9d9e8

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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -0
  3. package/context.d.ts +3 -0
  4. package/context.js +37 -0
  5. package/context.js.map +1 -0
  6. package/crud/createEventBridgeEvent.d.ts +7 -0
  7. package/crud/createEventBridgeEvent.js +67 -0
  8. package/crud/createEventBridgeEvent.js.map +1 -0
  9. package/crud/crud.tasks.d.ts +2 -0
  10. package/crud/crud.tasks.js +220 -0
  11. package/crud/crud.tasks.js.map +1 -0
  12. package/crud/definition.tasks.d.ts +2 -0
  13. package/crud/definition.tasks.js +29 -0
  14. package/crud/definition.tasks.js.map +1 -0
  15. package/crud/model.d.ts +5 -0
  16. package/crud/model.js +212 -0
  17. package/crud/model.js.map +1 -0
  18. package/crud/trigger.tasks.d.ts +2 -0
  19. package/crud/trigger.tasks.js +116 -0
  20. package/crud/trigger.tasks.js.map +1 -0
  21. package/crud/where.d.ts +1 -0
  22. package/crud/where.js +33 -0
  23. package/crud/where.js.map +1 -0
  24. package/graphql/checkPermissions.d.ts +7 -0
  25. package/graphql/checkPermissions.js +46 -0
  26. package/graphql/checkPermissions.js.map +1 -0
  27. package/graphql/index.d.ts +3 -0
  28. package/graphql/index.js +344 -0
  29. package/graphql/index.js.map +1 -0
  30. package/graphql/utils.d.ts +9 -0
  31. package/graphql/utils.js +28 -0
  32. package/graphql/utils.js.map +1 -0
  33. package/handler/index.d.ts +9 -0
  34. package/handler/index.js +65 -0
  35. package/handler/index.js.map +1 -0
  36. package/handler/register.d.ts +1 -0
  37. package/handler/register.js +21 -0
  38. package/handler/register.js.map +1 -0
  39. package/handler/types.d.ts +19 -0
  40. package/handler/types.js +7 -0
  41. package/handler/types.js.map +1 -0
  42. package/index.d.ts +7 -0
  43. package/index.js +47 -0
  44. package/index.js.map +1 -0
  45. package/package.json +56 -0
  46. package/response/DatabaseResponse.d.ts +12 -0
  47. package/response/DatabaseResponse.js +142 -0
  48. package/response/DatabaseResponse.js.map +1 -0
  49. package/response/Response.d.ts +11 -0
  50. package/response/Response.js +73 -0
  51. package/response/Response.js.map +1 -0
  52. package/response/ResponseAbortedResult.d.ts +10 -0
  53. package/response/ResponseAbortedResult.js +19 -0
  54. package/response/ResponseAbortedResult.js.map +1 -0
  55. package/response/ResponseContinueResult.d.ts +13 -0
  56. package/response/ResponseContinueResult.js +22 -0
  57. package/response/ResponseContinueResult.js.map +1 -0
  58. package/response/ResponseDoneResult.d.ts +11 -0
  59. package/response/ResponseDoneResult.js +20 -0
  60. package/response/ResponseDoneResult.js.map +1 -0
  61. package/response/ResponseErrorResult.d.ts +11 -0
  62. package/response/ResponseErrorResult.js +20 -0
  63. package/response/ResponseErrorResult.js.map +1 -0
  64. package/response/TaskResponse.d.ts +10 -0
  65. package/response/TaskResponse.js +55 -0
  66. package/response/TaskResponse.js.map +1 -0
  67. package/response/abstractions/Response.d.ts +23 -0
  68. package/response/abstractions/Response.js +7 -0
  69. package/response/abstractions/Response.js.map +1 -0
  70. package/response/abstractions/ResponseAbortedResult.d.ts +5 -0
  71. package/response/abstractions/ResponseAbortedResult.js +7 -0
  72. package/response/abstractions/ResponseAbortedResult.js.map +1 -0
  73. package/response/abstractions/ResponseBaseResult.d.ts +8 -0
  74. package/response/abstractions/ResponseBaseResult.js +7 -0
  75. package/response/abstractions/ResponseBaseResult.js.map +1 -0
  76. package/response/abstractions/ResponseContinueResult.d.ts +19 -0
  77. package/response/abstractions/ResponseContinueResult.js +7 -0
  78. package/response/abstractions/ResponseContinueResult.js.map +1 -0
  79. package/response/abstractions/ResponseDoneResult.d.ts +12 -0
  80. package/response/abstractions/ResponseDoneResult.js +7 -0
  81. package/response/abstractions/ResponseDoneResult.js.map +1 -0
  82. package/response/abstractions/ResponseErrorResult.d.ts +18 -0
  83. package/response/abstractions/ResponseErrorResult.js +7 -0
  84. package/response/abstractions/ResponseErrorResult.js.map +1 -0
  85. package/response/abstractions/TaskResponse.d.ts +32 -0
  86. package/response/abstractions/TaskResponse.js +7 -0
  87. package/response/abstractions/TaskResponse.js.map +1 -0
  88. package/response/abstractions/index.d.ts +7 -0
  89. package/response/abstractions/index.js +84 -0
  90. package/response/abstractions/index.js.map +1 -0
  91. package/response/index.d.ts +7 -0
  92. package/response/index.js +84 -0
  93. package/response/index.js.map +1 -0
  94. package/runner/TaskControl.d.ts +13 -0
  95. package/runner/TaskControl.js +142 -0
  96. package/runner/TaskControl.js.map +1 -0
  97. package/runner/TaskEventValidation.d.ts +5 -0
  98. package/runner/TaskEventValidation.js +30 -0
  99. package/runner/TaskEventValidation.js.map +1 -0
  100. package/runner/TaskManager.d.ts +13 -0
  101. package/runner/TaskManager.js +101 -0
  102. package/runner/TaskManager.js.map +1 -0
  103. package/runner/TaskManagerStore.d.ts +19 -0
  104. package/runner/TaskManagerStore.js +90 -0
  105. package/runner/TaskManagerStore.js.map +1 -0
  106. package/runner/TaskRunner.d.ts +30 -0
  107. package/runner/TaskRunner.js +67 -0
  108. package/runner/TaskRunner.js.map +1 -0
  109. package/runner/abstractions/TaskControl.d.ts +10 -0
  110. package/runner/abstractions/TaskControl.js +7 -0
  111. package/runner/abstractions/TaskControl.js.map +1 -0
  112. package/runner/abstractions/TaskEventValidation.d.ts +5 -0
  113. package/runner/abstractions/TaskEventValidation.js +7 -0
  114. package/runner/abstractions/TaskEventValidation.js.map +1 -0
  115. package/runner/abstractions/TaskManager.d.ts +5 -0
  116. package/runner/abstractions/TaskManager.js +7 -0
  117. package/runner/abstractions/TaskManager.js.map +1 -0
  118. package/runner/abstractions/TaskManagerStore.d.ts +39 -0
  119. package/runner/abstractions/TaskManagerStore.js +7 -0
  120. package/runner/abstractions/TaskManagerStore.js.map +1 -0
  121. package/runner/abstractions/TaskRunner.d.ts +14 -0
  122. package/runner/abstractions/TaskRunner.js +7 -0
  123. package/runner/abstractions/TaskRunner.js.map +1 -0
  124. package/runner/abstractions/index.d.ts +5 -0
  125. package/runner/abstractions/index.js +62 -0
  126. package/runner/abstractions/index.js.map +1 -0
  127. package/runner/index.d.ts +1 -0
  128. package/runner/index.js +18 -0
  129. package/runner/index.js.map +1 -0
  130. package/runner/utils/getErrorProperties.d.ts +5 -0
  131. package/runner/utils/getErrorProperties.js +18 -0
  132. package/runner/utils/getErrorProperties.js.map +1 -0
  133. package/runner/utils/getObjectProperties.d.ts +4 -0
  134. package/runner/utils/getObjectProperties.js +21 -0
  135. package/runner/utils/getObjectProperties.js.map +1 -0
  136. package/task/index.d.ts +2 -0
  137. package/task/index.js +29 -0
  138. package/task/index.js.map +1 -0
  139. package/task/input.d.ts +15 -0
  140. package/task/input.js +21 -0
  141. package/task/input.js.map +1 -0
  142. package/task/plugin.d.ts +28 -0
  143. package/task/plugin.js +76 -0
  144. package/task/plugin.js.map +1 -0
  145. package/types.d.ts +258 -0
  146. package/types.js +60 -0
  147. package/types.js.map +1 -0
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createGraphQL = 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");
15
+ const createWebinyBackgroundTaskDefinitionEnum = definitions => {
16
+ if (definitions.length === 0) {
17
+ return "Empty";
18
+ }
19
+ return definitions.map(definition => definition.id).join("\n");
20
+ };
21
+ const createGraphQL = () => {
22
+ const plugin = new _handler.ContextPlugin(async context => {
23
+ if (!context.tenancy.getCurrentTenant()) {
24
+ return;
25
+ } else if (!context.i18n.getDefaultLocale()) {
26
+ return;
27
+ }
28
+ const taskModel = await context.tasks.getTaskModel();
29
+ const logModel = await context.tasks.getLogModel();
30
+ const models = await context.security.withoutAuthorization(async () => {
31
+ return (await context.cms.listModels()).filter(model => {
32
+ if (model.fields.length === 0) {
33
+ return false;
34
+ } else if (model.isPrivate) {
35
+ return false;
36
+ }
37
+ return true;
38
+ });
39
+ });
40
+ const fieldTypePlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(context.plugins);
41
+ const taskFields = (0, _renderFields.renderFields)({
42
+ models,
43
+ model: taskModel,
44
+ fields: taskModel.fields,
45
+ type: "manage",
46
+ fieldTypePlugins
47
+ });
48
+ const logFields = (0, _renderFields.renderFields)({
49
+ models,
50
+ model: logModel,
51
+ fields: logModel.fields.filter(field => field.fieldId !== "task"),
52
+ type: "manage",
53
+ fieldTypePlugins
54
+ });
55
+ const listTasksFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
56
+ model: taskModel,
57
+ fields: taskModel.fields,
58
+ type: "manage",
59
+ fieldTypePlugins,
60
+ excludeFields: ["entryId"]
61
+ });
62
+ const listLogsFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
63
+ model: logModel,
64
+ fields: logModel.fields,
65
+ type: "manage",
66
+ fieldTypePlugins,
67
+ excludeFields: ["entryId"]
68
+ });
69
+ const sortTasksEnumRender = (0, _renderSortEnum.renderSortEnum)({
70
+ model: taskModel,
71
+ fields: taskModel.fields,
72
+ fieldTypePlugins,
73
+ sorterPlugins: []
74
+ });
75
+ const sortLogsEnumRender = (0, _renderSortEnum.renderSortEnum)({
76
+ model: logModel,
77
+ fields: logModel.fields,
78
+ fieldTypePlugins,
79
+ sorterPlugins: []
80
+ });
81
+ const taskDefinitions = context.tasks.listDefinitions();
82
+ const plugin = new _handlerGraphql.GraphQLSchemaPlugin({
83
+ typeDefs: /* GraphQL */`
84
+ type WebinyBackgroundTaskError {
85
+ message: String
86
+ code: String
87
+ data: JSON
88
+ stack: String
89
+ }
90
+
91
+ ${taskFields.map(f => f.typeDefs).join("\n")}
92
+ ${logFields.map(f => f.typeDefs).join("\n")}
93
+
94
+ type WebinyBackgroundTask {
95
+ id: String!
96
+ createdOn: DateTime!
97
+ savedOn: DateTime
98
+ createdBy: WebinyBackgroundTaskIdentity!
99
+ logs(
100
+ where: WebinyBackgroundTaskLogListWhereInput
101
+ limit: Number
102
+ sort: [WebinyBackgroundTaskLogListSorter!]
103
+ ): [WebinyBackgroundTaskLog!]!
104
+ ${taskFields.map(f => f.fields).join("\n")}
105
+ }
106
+
107
+ type WebinyBackgroundTaskResponse {
108
+ data: WebinyBackgroundTask
109
+ error: WebinyBackgroundTaskError
110
+ }
111
+
112
+ type WebinyBackgroundTaskMeta {
113
+ cursor: String
114
+ hasMoreItems: Boolean!
115
+ totalCount: Int!
116
+ }
117
+
118
+ type WebinyBackgroundTaskListResponse {
119
+ data: [WebinyBackgroundTask!]
120
+ meta: WebinyBackgroundTaskMeta
121
+ error: WebinyBackgroundTaskError
122
+ }
123
+
124
+ type WebinyBackgroundTaskLog {
125
+ id: String!
126
+ createdOn: DateTime!
127
+ createdBy: WebinyBackgroundTaskIdentity!
128
+ task: WebinyBackgroundTask!
129
+ ${logFields.map(f => f.fields).join("\n")}
130
+ }
131
+
132
+ type WebinyBackgroundTaskLogListResponse {
133
+ data: [WebinyBackgroundTaskLog!]
134
+ meta: WebinyBackgroundTaskMeta
135
+ error: WebinyBackgroundTaskError
136
+ }
137
+
138
+ type WebinyBackgroundTaskDefinition {
139
+ id: String!
140
+ title: String!
141
+ description: String
142
+ fields: JSON
143
+ }
144
+
145
+ type WebinyBackgroundTaskListDefinitionsResponse {
146
+ data: [WebinyBackgroundTaskDefinition!]
147
+ error: WebinyBackgroundTaskError
148
+ }
149
+
150
+ type WebinyBackgroundTaskIdentity {
151
+ id: String!
152
+ displayName: String!
153
+ type: String
154
+ }
155
+
156
+ type WebinyBackgroundTaskTriggerResponse {
157
+ data: WebinyBackgroundTask
158
+ error: WebinyBackgroundTaskError
159
+ }
160
+
161
+ type WebinyBackgroundTaskDeleteResponse {
162
+ data: Boolean
163
+ error: WebinyBackgroundTaskError
164
+ }
165
+
166
+ input WebinyBackgroundTaskListWhereInput {
167
+ ${listTasksFilterFieldsRender}
168
+ }
169
+
170
+ input WebinyBackgroundTaskLogListWhereInput {
171
+ ${listLogsFilterFieldsRender}
172
+ }
173
+
174
+ enum WebinyBackgroundTaskListSorter {
175
+ ${sortTasksEnumRender}
176
+ }
177
+
178
+ enum WebinyBackgroundTaskLogListSorter {
179
+ ${sortLogsEnumRender}
180
+ }
181
+
182
+ type WebinyBackgroundTaskQuery {
183
+ _empty: String
184
+ }
185
+
186
+ type WebinyBackgroundTaskMutation {
187
+ _empty: String
188
+ }
189
+
190
+ enum WebinyBackgroundTaskDefinitionEnum {
191
+ ${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}
192
+ }
193
+
194
+ extend type Query {
195
+ backgroundTasks: WebinyBackgroundTaskQuery
196
+ }
197
+
198
+ extend type Mutation {
199
+ backgroundTasks: WebinyBackgroundTaskMutation
200
+ }
201
+
202
+ extend type WebinyBackgroundTaskQuery {
203
+ getTask(id: ID!): WebinyBackgroundTaskResponse!
204
+ listTasks(
205
+ where: WebinyBackgroundTaskListWhereInput
206
+ sort: [WebinyBackgroundTaskListSorter!]
207
+ limit: Int
208
+ after: String
209
+ search: String
210
+ ): WebinyBackgroundTaskListResponse!
211
+ listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
212
+
213
+ listLogs(
214
+ where: WebinyBackgroundTaskLogListWhereInput
215
+ sort: [WebinyBackgroundTaskLogListSorter!]
216
+ limit: Int
217
+ after: String
218
+ search: String
219
+ ): WebinyBackgroundTaskLogListResponse!
220
+ }
221
+
222
+ extend type WebinyBackgroundTaskMutation {
223
+ triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String): WebinyBackgroundTaskTriggerResponse!
224
+ abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
225
+ deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
226
+ }
227
+ `,
228
+ resolvers: {
229
+ Query: {
230
+ backgroundTasks: _utils.emptyResolver
231
+ },
232
+ Mutation: {
233
+ backgroundTasks: _utils.emptyResolver
234
+ },
235
+ WebinyBackgroundTaskQuery: {
236
+ /**
237
+ * We need to think of a way to pass the args type to the resolver without assigning it directly.
238
+ */
239
+ // @ts-expect-error
240
+ getTask: async (_, args, context) => {
241
+ return (0, _utils.resolve)(async () => {
242
+ await (0, _checkPermissions.checkPermissions)(context, {
243
+ rwd: "r"
244
+ });
245
+ return await context.tasks.getTask(args.id);
246
+ });
247
+ },
248
+ listTasks: async (_, args, context) => {
249
+ return (0, _utils.resolveList)(async () => {
250
+ await (0, _checkPermissions.checkPermissions)(context, {
251
+ rwd: "r"
252
+ });
253
+ return await context.tasks.listTasks(args);
254
+ });
255
+ },
256
+ listDefinitions: async (_, __, context) => {
257
+ return (0, _utils.resolve)(async () => {
258
+ await (0, _checkPermissions.checkPermissions)(context, {
259
+ rwd: "r"
260
+ });
261
+ return context.tasks.listDefinitions();
262
+ });
263
+ },
264
+ listLogs: async (_, args, context) => {
265
+ return (0, _utils.resolveList)(async () => {
266
+ await (0, _checkPermissions.checkPermissions)(context, {
267
+ rwd: "r"
268
+ });
269
+ return await context.tasks.listLogs(args);
270
+ });
271
+ }
272
+ },
273
+ WebinyBackgroundTaskMutation: {
274
+ /**
275
+ * We need to think of a way to pass the args type to the resolver without assigning it directly.
276
+ */
277
+ // @ts-expect-error
278
+ abortTask: async (_, args, context) => {
279
+ await (0, _checkPermissions.checkPermissions)(context, {
280
+ rwd: "w"
281
+ });
282
+ return (0, _utils.resolve)(async () => {
283
+ return await context.tasks.abort(args);
284
+ });
285
+ },
286
+ /**
287
+ * We need to think of a way to pass the args type to the resolver without assigning it directly.
288
+ */
289
+ // @ts-expect-error
290
+ triggerTask: async (_, args, context) => {
291
+ await (0, _checkPermissions.checkPermissions)(context, {
292
+ rwd: "w"
293
+ });
294
+ return (0, _utils.resolve)(async () => {
295
+ return await context.tasks.trigger(args);
296
+ });
297
+ },
298
+ /**
299
+ * We need to think of a way to pass the args type to the resolver without assigning it directly.
300
+ */
301
+ // @ts-expect-error
302
+ deleteTask: async (_, args, context) => {
303
+ await (0, _checkPermissions.checkPermissions)(context, {
304
+ rwd: "d"
305
+ });
306
+ return (0, _utils.resolve)(async () => {
307
+ return await context.tasks.deleteTask(args.id);
308
+ });
309
+ }
310
+ },
311
+ /**
312
+ * Custom resolvers for fields
313
+ */
314
+ WebinyBackgroundTask: {
315
+ logs: async (parent, args, context) => {
316
+ const {
317
+ items
318
+ } = await context.tasks.listLogs({
319
+ sort: ["createdBy_ASC"],
320
+ limit: 10000,
321
+ ...args,
322
+ where: {
323
+ ...args?.where,
324
+ task: parent.id
325
+ }
326
+ });
327
+ return items;
328
+ }
329
+ },
330
+ WebinyBackgroundTaskLog: {
331
+ task: async (parent, _, context) => {
332
+ return await context.tasks.getTask(parent.task);
333
+ }
334
+ }
335
+ }
336
+ });
337
+ context.plugins.register(plugin);
338
+ });
339
+ plugin.name = "tasks.graphql";
340
+ return plugin;
341
+ };
342
+ exports.createGraphQL = createGraphQL;
343
+
344
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_handlerGraphql","require","_renderSortEnum","_handler","_renderListFilterFields","_createFieldTypePluginRecords","_utils","_renderFields","_checkPermissions","createWebinyBackgroundTaskDefinitionEnum","definitions","length","map","definition","id","join","createGraphQL","plugin","ContextPlugin","context","tenancy","getCurrentTenant","i18n","getDefaultLocale","taskModel","tasks","getTaskModel","logModel","getLogModel","models","security","withoutAuthorization","cms","listModels","filter","model","fields","isPrivate","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","resolve","checkPermissions","rwd","listTasks","resolveList","__","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","items","sort","limit","where","task","WebinyBackgroundTaskLog","register","name","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 {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITaskData,\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\";\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}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createWebinyBackgroundTaskDefinitionEnum = (definitions: ITaskDefinition[]): string => {\n if (definitions.length === 0) {\n return \"Empty\";\n }\n return definitions.map(definition => definition.id).join(\"\\n\");\n};\n\nexport const createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async context => {\n if (!context.tenancy.getCurrentTenant()) {\n return;\n } else if (!context.i18n.getDefaultLocale()) {\n return;\n }\n\n const taskModel = await context.tasks.getTaskModel();\n const logModel = await context.tasks.getLogModel();\n\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.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(context.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 = context.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): 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 // @ts-expect-error\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 return context.tasks.listDefinitions();\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 // @ts-expect-error\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 // @ts-expect-error\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 // @ts-expect-error\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: ITaskData, 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 context.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n"],"mappings":"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AAC,CAACD,QAAQ,CAAC,CAAC3C,IAAI,CAAC,IAAI,CAAE;AAC7D,kBAAkB6B,SAAS,CAAChC,GAAG,CAAC+C,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAAC3C,IAAI,CAAC,IAAI,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB0B,UAAU,CAAC7B,GAAG,CAAC+C,CAAC,IAAIA,CAAC,CAACvB,MAAM,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAE;AAC/D;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,SAAS,CAAChC,GAAG,CAAC+C,CAAC,IAAIA,CAAC,CAACvB,MAAM,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBgC,2BAA4B;AAClD;AACA;AACA;AACA,sBAAsBG,0BAA2B;AACjD;AACA;AACA;AACA,sBAAsBC,mBAAoB;AAC1C;AACA;AACA;AACA,sBAAsBG,kBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB7C,wCAAwC,CAAC8C,eAAe,CAAE;AAChF;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,SAAS,EAAE;QACPC,KAAK,EAAE;UACHC,eAAe,EAAEC;QACrB,CAAC;QACDC,QAAQ,EAAE;UACNF,eAAe,EAAEC;QACrB,CAAC;QACDE,yBAAyB,EAAE;UACvB;AACpB;AACA;UACoB;UACAC,OAAO,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAyB,EAAEjD,OAAO,KAAK;YACtD,OAAO,IAAAkD,cAAO,EAAC,YAAY;cACvB,MAAM,IAAAC,kCAAgB,EAACnD,OAAO,EAAE;gBAC5BoD,GAAG,EAAE;cACT,CAAC,CAAC;cACF,OAAO,MAAMpD,OAAO,CAACM,KAAK,CAACyC,OAAO,CAACE,IAAI,CAACtD,EAAE,CAAC;YAC/C,CAAC,CAAC;UACN,CAAC;UACD0D,SAAS,EAAE,MAAAA,CAAOL,CAAC,EAAEC,IAAqB,EAAEjD,OAAO,KAAK;YACpD,OAAO,IAAAsD,kBAAW,EAAC,YAAY;cAC3B,MAAM,IAAAH,kCAAgB,EAACnD,OAAO,EAAE;gBAC5BoD,GAAG,EAAE;cACT,CAAC,CAAC;cACF,OAAO,MAAMpD,OAAO,CAACM,KAAK,CAAC+C,SAAS,CAACJ,IAAI,CAAC;YAC9C,CAAC,CAAC;UACN,CAAC;UACDZ,eAAe,EAAE,MAAAA,CAAOW,CAAC,EAAEO,EAAE,EAAEvD,OAAO,KAAK;YACvC,OAAO,IAAAkD,cAAO,EAAC,YAAY;cACvB,MAAM,IAAAC,kCAAgB,EAACnD,OAAO,EAAE;gBAC5BoD,GAAG,EAAE;cACT,CAAC,CAAC;cACF,OAAOpD,OAAO,CAACM,KAAK,CAAC+B,eAAe,CAAC,CAAC;YAC1C,CAAC,CAAC;UACN,CAAC;UACDmB,QAAQ,EAAE,MAAAA,CAAOR,CAAC,EAAEC,IAAwB,EAAEjD,OAAO,KAAK;YACtD,OAAO,IAAAsD,kBAAW,EAAC,YAAY;cAC3B,MAAM,IAAAH,kCAAgB,EAACnD,OAAO,EAAE;gBAC5BoD,GAAG,EAAE;cACT,CAAC,CAAC;cACF,OAAO,MAAMpD,OAAO,CAACM,KAAK,CAACkD,QAAQ,CAACP,IAAI,CAAC;YAC7C,CAAC,CAAC;UACN;QACJ,CAAC;QACDQ,4BAA4B,EAAE;UAC1B;AACpB;AACA;UACoB;UACAC,SAAS,EAAE,MAAAA,CAAOV,CAAC,EAAEC,IAA8B,EAAEjD,OAAO,KAAK;YAC7D,MAAM,IAAAmD,kCAAgB,EAACnD,OAAO,EAAE;cAC5BoD,GAAG,EAAE;YACT,CAAC,CAAC;YACF,OAAO,IAAAF,cAAO,EAAC,YAAY;cACvB,OAAO,MAAMlD,OAAO,CAACM,KAAK,CAACqD,KAAK,CAACV,IAAI,CAAC;YAC1C,CAAC,CAAC;UACN,CAAC;UACD;AACpB;AACA;UACoB;UACAW,WAAW,EAAE,MAAAA,CAAOZ,CAAC,EAAEC,IAAgC,EAAEjD,OAAO,KAAK;YACjE,MAAM,IAAAmD,kCAAgB,EAACnD,OAAO,EAAE;cAC5BoD,GAAG,EAAE;YACT,CAAC,CAAC;YACF,OAAO,IAAAF,cAAO,EAAC,YAAY;cACvB,OAAO,MAAMlD,OAAO,CAACM,KAAK,CAACuD,OAAO,CAACZ,IAAI,CAAC;YAC5C,CAAC,CAAC;UACN,CAAC;UACD;AACpB;AACA;UACoB;UACAa,UAAU,EAAE,MAAAA,CAAOd,CAAC,EAAEC,IAA+B,EAAEjD,OAAO,KAAK;YAC/D,MAAM,IAAAmD,kCAAgB,EAACnD,OAAO,EAAE;cAC5BoD,GAAG,EAAE;YACT,CAAC,CAAC;YACF,OAAO,IAAAF,cAAO,EAAC,YAAY;cACvB,OAAO,MAAMlD,OAAO,CAACM,KAAK,CAACwD,UAAU,CAACb,IAAI,CAACtD,EAAE,CAAC;YAClD,CAAC,CAAC;UACN;QACJ,CAAC;QACD;AAChB;AACA;QACgBoE,oBAAoB,EAAE;UAClBC,IAAI,EAAE,MAAAA,CAAOC,MAAiB,EAAEhB,IAAwB,EAAEjD,OAAO,KAAK;YAClE,MAAM;cAAEkE;YAAM,CAAC,GAAG,MAAMlE,OAAO,CAACM,KAAK,CAACkD,QAAQ,CAAC;cAC3CW,IAAI,EAAE,CAAC,eAAe,CAAC;cACvBC,KAAK,EAAE,KAAK;cACZ,GAAGnB,IAAI;cACPoB,KAAK,EAAE;gBACH,GAAGpB,IAAI,EAAEoB,KAAK;gBACdC,IAAI,EAAEL,MAAM,CAACtE;cACjB;YACJ,CAAC,CAAC;YACF,OAAOuE,KAAK;UAChB;QACJ,CAAC;QACDK,uBAAuB,EAAE;UACrBD,IAAI,EAAE,MAAAA,CAAOL,MAAgB,EAAEjB,CAAC,EAAEhD,OAAO,KAAK;YAC1C,OAAO,MAAMA,OAAO,CAACM,KAAK,CAACyC,OAAO,CAACkB,MAAM,CAACK,IAAI,CAAC;UACnD;QACJ;MACJ;IACJ,CAAC,CAAC;IACFtE,OAAO,CAACqB,OAAO,CAACmD,QAAQ,CAAC1E,MAAM,CAAC;EACpC,CAAC,CAAC;EAEFA,MAAM,CAAC2E,IAAI,GAAG,eAAe;EAE7B,OAAO3E,MAAM;AACjB,CAAC;AAAC4E,OAAA,CAAA7E,aAAA,GAAAA,aAAA"}
@@ -0,0 +1,9 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
2
+ import { CmsEntryMeta } from "@webiny/api-headless-cms/types";
3
+ export declare const emptyResolver: () => {};
4
+ interface ResolveCallable<T = any> {
5
+ (): Promise<T>;
6
+ }
7
+ export declare const resolve: <T = any>(fn: ResolveCallable<T>) => Promise<ErrorResponse | Response<Awaited<T>>>;
8
+ export declare const resolveList: (fn: ResolveCallable) => Promise<ListErrorResponse | ListResponse<any, CmsEntryMeta>>;
9
+ export {};
@@ -0,0 +1,28 @@
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 => {
11
+ try {
12
+ return new _handlerGraphql.Response(await fn());
13
+ } catch (e) {
14
+ return new _handlerGraphql.ErrorResponse(e);
15
+ }
16
+ };
17
+ exports.resolve = resolve;
18
+ const resolveList = async fn => {
19
+ try {
20
+ const result = await fn();
21
+ return new _handlerGraphql.ListResponse(result.items, result.meta);
22
+ } catch (e) {
23
+ return new _handlerGraphql.ListErrorResponse(e);
24
+ }
25
+ };
26
+ exports.resolveList = resolveList;
27
+
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_handlerGraphql","require","emptyResolver","exports","resolve","fn","Response","e","ErrorResponse","resolveList","result","ListResponse","items","meta","ListErrorResponse"],"sources":["utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport { 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 (e) {\n return new ErrorResponse(e);\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 (e) {\n return new ListErrorResponse(e);\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,CAAC,EAAE;IACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;EAC/B;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,CAAC,EAAE;IACR,OAAO,IAAIO,iCAAiB,CAACP,CAAC,CAAC;EACnC;AACJ,CAAC;AAACJ,OAAA,CAAAM,WAAA,GAAAA,WAAA"}
@@ -0,0 +1,9 @@
1
+ import { HandlerFactoryParams } from "@webiny/handler-aws/types";
2
+ import { APIGatewayProxyResult } from "aws-lambda";
3
+ import { Context as LambdaContext } from "aws-lambda/handler";
4
+ import { ITaskEvent } from "./types";
5
+ export interface HandlerCallable {
6
+ (event: ITaskEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
7
+ }
8
+ export declare type HandlerParams = HandlerFactoryParams;
9
+ export declare const createHandler: (params: HandlerParams) => HandlerCallable;
@@ -0,0 +1,65 @@
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
+ const url = "/webiny-background-task-event";
13
+ const createHandler = params => {
14
+ return async (event, context) => {
15
+ const app = (0, _handler.createHandler)({
16
+ ...params,
17
+ options: {
18
+ logger: params.debug === true,
19
+ ...(params.options || {})
20
+ }
21
+ });
22
+ (0, _plugins.registerDefaultPlugins)(app.webiny);
23
+ app.addHook("preSerialization", async (_, __, payload) => {
24
+ if (!payload.body) {
25
+ return payload;
26
+ }
27
+ return payload.body;
28
+ });
29
+ app.setErrorHandler(async (error, _, reply) => {
30
+ app.__webiny_raw_result = {
31
+ error: {
32
+ message: error.message,
33
+ code: error.code,
34
+ data: error.data
35
+ },
36
+ status: _types.TaskResponseStatus.ERROR
37
+ };
38
+ return reply.send();
39
+ });
40
+ app.post(url, async (request, reply) => {
41
+ const handler = new _runner.TaskRunner(context, request, reply,
42
+ /**
43
+ * We can safely cast because we know that the context is of type tasks/Context
44
+ */
45
+ app.webiny);
46
+ app.__webiny_raw_result = await handler.run(event);
47
+ return reply.send({});
48
+ });
49
+ return (0, _execute.execute)({
50
+ app,
51
+ url,
52
+ payload: {
53
+ ...event,
54
+ headers: {
55
+ ["x-tenant"]: event.tenant,
56
+ ["x-webiny-cms-endpoint"]: event.endpoint,
57
+ ["x-webiny-cms-locale"]: event.locale
58
+ }
59
+ }
60
+ });
61
+ };
62
+ };
63
+ exports.createHandler = createHandler;
64
+
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_handler","require","_plugins","_execute","_types","_runner","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","request","handler","TaskRunner","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 { HandlerFactoryParams } from \"@webiny/handler-aws/types\";\nimport { APIGatewayProxyResult } from \"aws-lambda\";\nimport { Context as LambdaContext } from \"aws-lambda/handler\";\nimport { Context, TaskResponseStatus } from \"~/types\";\nimport { ITaskEvent } from \"~/handler/types\";\nimport { TaskRunner } from \"~/runner\";\nimport WebinyError from \"@webiny/error\";\n\nexport interface HandlerCallable {\n (event: ITaskEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nexport type HandlerParams = HandlerFactoryParams;\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 (request, reply) => {\n const handler = new TaskRunner(\n context,\n request,\n reply,\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context\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 }\n }\n });\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAIA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AASA,MAAMK,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,OAAO6B,OAAO,EAAEV,KAAK,KAAK;MACpC,MAAMW,OAAO,GAAG,IAAIC,kBAAU,CAC1B3B,OAAO,EACPyB,OAAO,EACPV,KAAK;MACL;AAChB;AACA;MACgBd,GAAG,CAACM,MACR,CAAC;MAEDN,GAAG,CAACe,mBAAmB,GAAG,MAAMU,OAAO,CAACE,GAAG,CAAC7B,KAAK,CAAC;MAClD,OAAOgB,KAAK,CAACQ,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,IAAAM,gBAAO,EAAC;MACX5B,GAAG;MACHL,GAAG;MACHe,OAAO,EAAE;QACL,GAAGZ,KAAK;QACR+B,OAAO,EAAE;UACL,CAAC,UAAU,GAAG/B,KAAK,CAACgC,MAAM;UAC1B,CAAC,uBAAuB,GAAGhC,KAAK,CAACiC,QAAQ;UACzC,CAAC,qBAAqB,GAAGjC,KAAK,CAACkC;QACnC;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAACC,OAAA,CAAArC,aAAA,GAAAA,aAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _registry = require("@webiny/handler-aws/registry");
4
+ var _index = require("./index");
5
+ var _handlerAws = require("@webiny/handler-aws");
6
+ const handler = (0, _handlerAws.createSourceHandler)({
7
+ name: "handler-webiny-background-task",
8
+ canUse: event => {
9
+ return !!event.payload?.webinyTaskId;
10
+ },
11
+ handle: async ({
12
+ params,
13
+ event,
14
+ context
15
+ }) => {
16
+ return (0, _index.createHandler)(params)(event.payload, context);
17
+ }
18
+ });
19
+ _registry.registry.register(handler);
20
+
21
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_registry","require","_index","_handlerAws","handler","createSourceHandler","name","canUse","event","payload","webinyTaskId","handle","params","context","createHandler","registry","register"],"sources":["register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry\";\nimport { createHandler, HandlerParams } from \"./index\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport { IIncomingEvent, ITaskEvent } from \"./types\";\n\nconst handler = createSourceHandler<IIncomingEvent<ITaskEvent>, HandlerParams>({\n name: \"handler-webiny-background-task\",\n canUse: event => {\n return !!event.payload?.webinyTaskId;\n },\n handle: async ({ params, event, context }) => {\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler);\n"],"mappings":";;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAGA,MAAMG,OAAO,GAAG,IAAAC,+BAAmB,EAA4C;EAC3EC,IAAI,EAAE,gCAAgC;EACtCC,MAAM,EAAEC,KAAK,IAAI;IACb,OAAO,CAAC,CAACA,KAAK,CAACC,OAAO,EAAEC,YAAY;EACxC,CAAC;EACDC,MAAM,EAAE,MAAAA,CAAO;IAAEC,MAAM;IAAEJ,KAAK;IAAEK;EAAQ,CAAC,KAAK;IAC1C,OAAO,IAAAC,oBAAa,EAACF,MAAM,CAAC,CAACJ,KAAK,CAACC,OAAO,EAAEI,OAAO,CAAC;EACxD;AACJ,CAAC,CAAC;AAEFE,kBAAQ,CAACC,QAAQ,CAACZ,OAAO,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface IIncomingEvent<TEvent> {
2
+ name: string;
3
+ payload: TEvent;
4
+ }
5
+ export interface ITaskEventInput {
6
+ tenant: string;
7
+ locale: string;
8
+ webinyTaskId: string;
9
+ webinyTaskDefinitionId: string;
10
+ }
11
+ export interface ITaskEvent {
12
+ tenant: string;
13
+ locale: string;
14
+ endpoint: string;
15
+ webinyTaskId: string;
16
+ webinyTaskDefinitionId: string;
17
+ executionName: string;
18
+ stateMachineId: string;
19
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface IIncomingEvent<TEvent> {\n name: string;\n payload: TEvent;\n}\n\nexport interface ITaskEventInput {\n tenant: string;\n locale: string;\n webinyTaskId: string;\n webinyTaskDefinitionId: string;\n}\n\nexport interface ITaskEvent {\n tenant: string;\n locale: string;\n endpoint: string;\n webinyTaskId: string;\n webinyTaskDefinitionId: string;\n executionName: string;\n stateMachineId: string;\n}\n"],"mappings":""}
package/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import "./handler/register";
2
+ import { Plugin } from "@webiny/plugins/types";
3
+ import { ITaskConfig } from "./types";
4
+ export declare const createBackgroundTaskGraphQL: () => Plugin[];
5
+ export declare const createBackgroundTaskContext: (config?: ITaskConfig) => Plugin[];
6
+ export * from "./task";
7
+ export * from "./types";
package/index.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ createBackgroundTaskGraphQL: true,
8
+ createBackgroundTaskContext: true
9
+ };
10
+ exports.createBackgroundTaskGraphQL = exports.createBackgroundTaskContext = void 0;
11
+ require("./handler/register");
12
+ var _graphql = require("./graphql");
13
+ var _context = require("./context");
14
+ var _task = require("./task");
15
+ Object.keys(_task).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
18
+ if (key in exports && exports[key] === _task[key]) return;
19
+ Object.defineProperty(exports, key, {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _task[key];
23
+ }
24
+ });
25
+ });
26
+ var _types = require("./types");
27
+ Object.keys(_types).forEach(function (key) {
28
+ if (key === "default" || key === "__esModule") return;
29
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
30
+ if (key in exports && exports[key] === _types[key]) return;
31
+ Object.defineProperty(exports, key, {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _types[key];
35
+ }
36
+ });
37
+ });
38
+ const createBackgroundTaskGraphQL = () => {
39
+ return [(0, _graphql.createGraphQL)()];
40
+ };
41
+ exports.createBackgroundTaskGraphQL = createBackgroundTaskGraphQL;
42
+ const createBackgroundTaskContext = config => {
43
+ return (0, _context.createTasksContext)(config);
44
+ };
45
+ exports.createBackgroundTaskContext = createBackgroundTaskContext;
46
+
47
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["require","_graphql","_context","_task","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","createBackgroundTaskGraphQL","createGraphQL","createBackgroundTaskContext","config","createTasksContext"],"sources":["index.ts"],"sourcesContent":["import \"./handler/register\";\nimport { Plugin } from \"@webiny/plugins/types\";\nimport { createGraphQL } from \"~/graphql\";\nimport { createTasksContext } from \"./context\";\nimport { ITaskConfig } from \"./types\";\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\nexport const createBackgroundTaskContext = (config?: ITaskConfig): Plugin[] => {\n return createTasksContext(config);\n};\n\nexport * from \"./task\";\nexport * from \"./types\";\n"],"mappings":";;;;;;;;;;AAAAA,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAUA,IAAAG,KAAA,GAAAH,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAhB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAW,MAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,MAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AARO,MAAMU,2BAA2B,GAAGA,CAAA,KAAgB;EACvD,OAAO,CAAC,IAAAC,sBAAa,EAAC,CAAC,CAAC;AAC5B,CAAC;AAACN,OAAA,CAAAK,2BAAA,GAAAA,2BAAA;AACK,MAAME,2BAA2B,GAAIC,MAAoB,IAAe;EAC3E,OAAO,IAAAC,2BAAkB,EAACD,MAAM,CAAC;AACrC,CAAC;AAACR,OAAA,CAAAO,2BAAA,GAAAA,2BAAA"}