@webiny/tasks 0.0.0-unstable.a9593f74dd → 0.0.0-unstable.e53eceafb5

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 (143) hide show
  1. package/context.d.ts +2 -3
  2. package/context.js +12 -16
  3. package/context.js.map +1 -1
  4. package/crud/crud.tasks.d.ts +1 -1
  5. package/crud/crud.tasks.js +53 -2
  6. package/crud/crud.tasks.js.map +1 -1
  7. package/crud/definition.tasks.d.ts +1 -1
  8. package/crud/definition.tasks.js.map +1 -1
  9. package/crud/model.js +9 -17
  10. package/crud/model.js.map +1 -1
  11. package/crud/service.tasks.d.ts +2 -0
  12. package/crud/{trigger.tasks.js → service.tasks.js} +62 -24
  13. package/crud/service.tasks.js.map +1 -0
  14. package/crud/where.js.map +1 -1
  15. package/graphql/checkPermissions.d.ts +1 -1
  16. package/graphql/checkPermissions.js.map +1 -1
  17. package/graphql/index.d.ts +2 -3
  18. package/graphql/index.js +16 -17
  19. package/graphql/index.js.map +1 -1
  20. package/graphql/utils.d.ts +3 -3
  21. package/graphql/utils.js.map +1 -1
  22. package/handler/index.d.ts +3 -6
  23. package/handler/index.js +8 -4
  24. package/handler/index.js.map +1 -1
  25. package/handler/register.js +7 -3
  26. package/handler/register.js.map +1 -1
  27. package/handler/types.d.ts +6 -0
  28. package/handler/types.js.map +1 -1
  29. package/index.d.ts +3 -4
  30. package/index.js +24 -10
  31. package/index.js.map +1 -1
  32. package/package.json +25 -31
  33. package/plugins/TaskServicePlugin.d.ts +20 -0
  34. package/plugins/TaskServicePlugin.js +17 -0
  35. package/plugins/TaskServicePlugin.js.map +1 -0
  36. package/plugins/index.d.ts +1 -0
  37. package/plugins/index.js +18 -0
  38. package/plugins/index.js.map +1 -0
  39. package/response/DatabaseResponse.d.ts +3 -3
  40. package/response/DatabaseResponse.js +9 -2
  41. package/response/DatabaseResponse.js.map +1 -1
  42. package/response/Response.d.ts +6 -4
  43. package/response/Response.js +56 -2
  44. package/response/Response.js.map +1 -1
  45. package/response/ResponseAbortedResult.d.ts +1 -1
  46. package/response/ResponseAbortedResult.js +1 -1
  47. package/response/ResponseAbortedResult.js.map +1 -1
  48. package/response/ResponseContinueResult.d.ts +8 -3
  49. package/response/ResponseContinueResult.js +4 -0
  50. package/response/ResponseContinueResult.js.map +1 -1
  51. package/response/ResponseDoneResult.d.ts +5 -3
  52. package/response/ResponseDoneResult.js +1 -0
  53. package/response/ResponseDoneResult.js.map +1 -1
  54. package/response/ResponseErrorResult.d.ts +1 -1
  55. package/response/ResponseErrorResult.js.map +1 -1
  56. package/response/TaskResponse.d.ts +5 -4
  57. package/response/TaskResponse.js +19 -6
  58. package/response/TaskResponse.js.map +1 -1
  59. package/response/abstractions/Response.d.ts +10 -9
  60. package/response/abstractions/Response.js.map +1 -1
  61. package/response/abstractions/ResponseAbortedResult.d.ts +2 -2
  62. package/response/abstractions/ResponseAbortedResult.js.map +1 -1
  63. package/response/abstractions/ResponseBaseResult.d.ts +1 -1
  64. package/response/abstractions/ResponseBaseResult.js.map +1 -1
  65. package/response/abstractions/ResponseContinueResult.d.ts +4 -2
  66. package/response/abstractions/ResponseContinueResult.js.map +1 -1
  67. package/response/abstractions/ResponseDoneResult.d.ts +4 -3
  68. package/response/abstractions/ResponseDoneResult.js.map +1 -1
  69. package/response/abstractions/ResponseErrorResult.d.ts +5 -4
  70. package/response/abstractions/ResponseErrorResult.js.map +1 -1
  71. package/response/abstractions/TaskResponse.d.ts +11 -9
  72. package/response/abstractions/TaskResponse.js.map +1 -1
  73. package/response/abstractions/index.js.map +1 -1
  74. package/response/index.js.map +1 -1
  75. package/runner/TaskControl.d.ts +4 -4
  76. package/runner/TaskControl.js +66 -17
  77. package/runner/TaskControl.js.map +1 -1
  78. package/runner/TaskEventValidation.d.ts +2 -2
  79. package/runner/TaskEventValidation.js.map +1 -1
  80. package/runner/TaskManager.d.ts +6 -5
  81. package/runner/TaskManager.js +53 -21
  82. package/runner/TaskManager.js.map +1 -1
  83. package/runner/TaskManagerStore.d.ts +25 -12
  84. package/runner/TaskManagerStore.js +95 -26
  85. package/runner/TaskManagerStore.js.map +1 -1
  86. package/runner/TaskRunner.d.ts +10 -14
  87. package/runner/TaskRunner.js +45 -16
  88. package/runner/TaskRunner.js.map +1 -1
  89. package/runner/abstractions/TaskControl.d.ts +4 -4
  90. package/runner/abstractions/TaskControl.js.map +1 -1
  91. package/runner/abstractions/TaskEventValidation.d.ts +2 -2
  92. package/runner/abstractions/TaskEventValidation.js.map +1 -1
  93. package/runner/abstractions/TaskManager.d.ts +2 -2
  94. package/runner/abstractions/TaskManager.js.map +1 -1
  95. package/runner/abstractions/TaskManagerStore.d.ts +61 -16
  96. package/runner/abstractions/TaskManagerStore.js.map +1 -1
  97. package/runner/abstractions/TaskRunner.d.ts +9 -10
  98. package/runner/abstractions/TaskRunner.js.map +1 -1
  99. package/runner/abstractions/index.js.map +1 -1
  100. package/runner/index.js.map +1 -1
  101. package/service/EventBridgeEventTransportPlugin.d.ts +17 -0
  102. package/service/EventBridgeEventTransportPlugin.js +60 -0
  103. package/service/EventBridgeEventTransportPlugin.js.map +1 -0
  104. package/service/StepFunctionServicePlugin.d.ts +26 -0
  105. package/service/StepFunctionServicePlugin.js +88 -0
  106. package/service/StepFunctionServicePlugin.js.map +1 -0
  107. package/service/createService.d.ts +6 -0
  108. package/service/createService.js +30 -0
  109. package/service/createService.js.map +1 -0
  110. package/service/index.d.ts +4 -0
  111. package/service/index.js +31 -0
  112. package/service/index.js.map +1 -0
  113. package/task/index.js.map +1 -1
  114. package/task/input.js.map +1 -1
  115. package/task/plugin.d.ts +11 -6
  116. package/task/plugin.js +19 -0
  117. package/task/plugin.js.map +1 -1
  118. package/tasks/testingRunTask.js.map +1 -1
  119. package/types.d.ts +121 -66
  120. package/types.js +20 -14
  121. package/types.js.map +1 -1
  122. package/utils/ObjectUpdater.d.ts +8 -0
  123. package/utils/ObjectUpdater.js +46 -0
  124. package/utils/ObjectUpdater.js.map +1 -0
  125. package/utils/getErrorProperties.d.ts +2 -2
  126. package/utils/getErrorProperties.js +3 -1
  127. package/utils/getErrorProperties.js.map +1 -1
  128. package/utils/getObjectProperties.js +3 -0
  129. package/utils/getObjectProperties.js.map +1 -1
  130. package/utils/index.d.ts +3 -0
  131. package/utils/index.js +40 -0
  132. package/utils/index.js.map +1 -0
  133. package/crud/createEventBridgeEvent.d.ts +0 -9
  134. package/crud/createEventBridgeEvent.js +0 -73
  135. package/crud/createEventBridgeEvent.js.map +0 -1
  136. package/crud/trigger.tasks.d.ts +0 -2
  137. package/crud/trigger.tasks.js.map +0 -1
  138. package/runner/utils/getErrorProperties.d.ts +0 -5
  139. package/runner/utils/getErrorProperties.js +0 -18
  140. package/runner/utils/getErrorProperties.js.map +0 -1
  141. package/runner/utils/getObjectProperties.d.ts +0 -4
  142. package/runner/utils/getObjectProperties.js +0 -21
  143. package/runner/utils/getObjectProperties.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_apiSecurity","require","checkPermissions","context","check","taskPermissions","security","getPermissions","relevant","filter","current","rwd","hasRwd","length","NotAuthorizedError","exports","permissions","Array","isArray","permissionWithoutRwdRestrictions","some","permission","includes"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { Context, TaskPermission } from \"~/types\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.security.getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG,MAAAA,CAC5BC,OAAgB,EAChBC,KAAuB,GAAG,CAAC,CAAC,KACZ;EAChB,MAAMC,eAAe,GAAG,MAAMF,OAAO,CAACG,QAAQ,CAACC,cAAc,CAAiB,OAAO,CAAC;EAEtF,MAAMC,QAAQ,GAAGH,eAAe,CAACI,MAAM,CAACC,OAAO,IAAI;IAC/C,IAAIN,KAAK,CAACO,GAAG,IAAI,CAACC,MAAM,CAACF,OAAO,EAAEN,KAAK,CAACO,GAAG,CAAC,EAAE;MAC1C,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC,CAAC;EAEF,IAAIH,QAAQ,CAACK,MAAM,KAAK,CAAC,EAAE;IACvB,MAAM,IAAIC,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAb,gBAAA,GAAAA,gBAAA;AAEF,MAAMU,MAAM,GAAGA,CAACI,WAA8C,EAAEL,GAAW,KAAc;EACrF,IAAI,CAACM,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC7BA,WAAW,GAAG,CAACA,WAAW,CAAC;EAC/B;EAEA,IAAI,CAACL,GAAG,EAAE;IACN,OAAO,IAAI;EACf;;EAEA;EACA,MAAMQ,gCAAgC,GAAGH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IACpE,OAAO,OAAOA,UAAU,CAACV,GAAG,KAAK,QAAQ;EAC7C,CAAC,CAAC;EAEF,IAAIQ,gCAAgC,EAAE;IAClC,OAAO,IAAI;EACf;;EAEA;EACA,OAAOH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IAClC,OAAOA,UAAU,CAACV,GAAG,IAAIU,UAAU,CAACV,GAAG,CAACW,QAAQ,CAACX,GAAG,CAAC;EACzD,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"names":["_apiSecurity","require","checkPermissions","context","check","taskPermissions","security","getPermissions","relevant","filter","current","rwd","hasRwd","length","NotAuthorizedError","exports","permissions","Array","isArray","permissionWithoutRwdRestrictions","some","permission","includes"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport type { Context, TaskPermission } from \"~/types\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.security.getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG,MAAAA,CAC5BC,OAAgB,EAChBC,KAAuB,GAAG,CAAC,CAAC,KACZ;EAChB,MAAMC,eAAe,GAAG,MAAMF,OAAO,CAACG,QAAQ,CAACC,cAAc,CAAiB,OAAO,CAAC;EAEtF,MAAMC,QAAQ,GAAGH,eAAe,CAACI,MAAM,CAACC,OAAO,IAAI;IAC/C,IAAIN,KAAK,CAACO,GAAG,IAAI,CAACC,MAAM,CAACF,OAAO,EAAEN,KAAK,CAACO,GAAG,CAAC,EAAE;MAC1C,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC,CAAC;EAEF,IAAIH,QAAQ,CAACK,MAAM,KAAK,CAAC,EAAE;IACvB,MAAM,IAAIC,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAb,gBAAA,GAAAA,gBAAA;AAEF,MAAMU,MAAM,GAAGA,CAACI,WAA8C,EAAEL,GAAW,KAAc;EACrF,IAAI,CAACM,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC7BA,WAAW,GAAG,CAACA,WAAW,CAAC;EAC/B;EAEA,IAAI,CAACL,GAAG,EAAE;IACN,OAAO,IAAI;EACf;;EAEA;EACA,MAAMQ,gCAAgC,GAAGH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IACpE,OAAO,OAAOA,UAAU,CAACV,GAAG,KAAK,QAAQ;EAC7C,CAAC,CAAC;EAEF,IAAIQ,gCAAgC,EAAE;IAClC,OAAO,IAAI;EACf;;EAEA;EACA,OAAOH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IAClC,OAAOA,UAAU,CAACV,GAAG,IAAIU,UAAU,CAACV,GAAG,CAACW,QAAQ,CAACX,GAAG,CAAC;EACzD,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,3 +1,2 @@
1
- import { ContextPlugin } from "@webiny/handler";
2
- import { Context } from "../types";
3
- export declare const createGraphQL: () => ContextPlugin<Context>;
1
+ import type { Plugin } from "@webiny/plugins/types";
2
+ export declare const createBackgroundTaskGraphQL: () => Plugin[];
package/graphql/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createGraphQL = void 0;
6
+ exports.createBackgroundTaskGraphQL = void 0;
7
7
  var _handlerGraphql = require("@webiny/handler-graphql");
8
8
  var _renderSortEnum = require("@webiny/api-headless-cms/utils/renderSortEnum");
9
9
  var _handler = require("@webiny/handler");
@@ -21,16 +21,16 @@ const createWebinyBackgroundTaskDefinitionEnum = items => {
21
21
  }).map(definition => definition.id).join("\n");
22
22
  };
23
23
  const createGraphQL = () => {
24
- const plugin = new _handler.ContextPlugin(async context => {
25
- if (!context.tenancy.getCurrentTenant()) {
24
+ const plugin = new _handler.ContextPlugin(async ctx => {
25
+ if (!ctx.tenancy.getCurrentTenant()) {
26
26
  return;
27
- } else if (!context.i18n.getDefaultLocale()) {
27
+ } else if (!ctx.i18n.getDefaultLocale()) {
28
28
  return;
29
29
  }
30
- const taskModel = await context.tasks.getTaskModel();
31
- const logModel = await context.tasks.getLogModel();
32
- const models = await context.security.withoutAuthorization(async () => {
33
- return (await context.cms.listModels()).filter(model => {
30
+ const taskModel = await ctx.tasks.getTaskModel();
31
+ const logModel = await ctx.tasks.getLogModel();
32
+ const models = await ctx.security.withoutAuthorization(async () => {
33
+ return (await ctx.cms.listModels()).filter(model => {
34
34
  if (model.fields.length === 0) {
35
35
  return false;
36
36
  } else if (model.isPrivate) {
@@ -39,7 +39,7 @@ const createGraphQL = () => {
39
39
  return true;
40
40
  });
41
41
  });
42
- const fieldTypePlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(context.plugins);
42
+ const fieldTypePlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(ctx.plugins);
43
43
  const taskFields = (0, _renderFields.renderFields)({
44
44
  models,
45
45
  model: taskModel,
@@ -80,7 +80,7 @@ const createGraphQL = () => {
80
80
  fieldTypePlugins,
81
81
  sorterPlugins: []
82
82
  });
83
- const taskDefinitions = context.tasks.listDefinitions();
83
+ const taskDefinitions = ctx.tasks.listDefinitions();
84
84
  const plugin = new _handlerGraphql.GraphQLSchemaPlugin({
85
85
  typeDefs: /* GraphQL */`
86
86
  type WebinyBackgroundTaskError {
@@ -222,7 +222,7 @@ const createGraphQL = () => {
222
222
  }
223
223
 
224
224
  extend type WebinyBackgroundTaskMutation {
225
- triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String): WebinyBackgroundTaskTriggerResponse!
225
+ triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!
226
226
  abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
227
227
  deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
228
228
  }
@@ -238,7 +238,6 @@ const createGraphQL = () => {
238
238
  /**
239
239
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
240
240
  */
241
- // @ts-expect-error
242
241
  getTask: async (_, args, context) => {
243
242
  return (0, _utils.resolve)(async () => {
244
243
  await (0, _checkPermissions.checkPermissions)(context, {
@@ -282,7 +281,6 @@ const createGraphQL = () => {
282
281
  /**
283
282
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
284
283
  */
285
- // @ts-expect-error
286
284
  abortTask: async (_, args, context) => {
287
285
  await (0, _checkPermissions.checkPermissions)(context, {
288
286
  rwd: "w"
@@ -294,7 +292,6 @@ const createGraphQL = () => {
294
292
  /**
295
293
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
296
294
  */
297
- // @ts-expect-error
298
295
  triggerTask: async (_, args, context) => {
299
296
  await (0, _checkPermissions.checkPermissions)(context, {
300
297
  rwd: "w"
@@ -306,7 +303,6 @@ const createGraphQL = () => {
306
303
  /**
307
304
  * We need to think of a way to pass the args type to the resolver without assigning it directly.
308
305
  */
309
- // @ts-expect-error
310
306
  deleteTask: async (_, args, context) => {
311
307
  await (0, _checkPermissions.checkPermissions)(context, {
312
308
  rwd: "d"
@@ -342,11 +338,14 @@ const createGraphQL = () => {
342
338
  }
343
339
  }
344
340
  });
345
- context.plugins.register(plugin);
341
+ ctx.plugins.register(plugin);
346
342
  });
347
343
  plugin.name = "tasks.graphql";
348
344
  return plugin;
349
345
  };
350
- exports.createGraphQL = createGraphQL;
346
+ const createBackgroundTaskGraphQL = () => {
347
+ return [createGraphQL()];
348
+ };
349
+ exports.createBackgroundTaskGraphQL = createBackgroundTaskGraphQL;
351
350
 
352
351
  //# 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","context","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","resolve","checkPermissions","rwd","listTasks","resolveList","__","result","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","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 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\";\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 = (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\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 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 // @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: 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 context.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\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,CAAE;AAC7D,kBAAkB2B,SAAS,CAAC9B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACzC,IAAI,CAAC,IAAI,CAAE;AAC5D;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,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,sBAAsB2B,SAAS,CAAC9B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACtB,MAAM,CAAC,CAACpB,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,sBAAsB8B,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,sBAAsB9C,wCAAwC,CAAC+C,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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"}
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,9 +1,9 @@
1
1
  import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
2
- import { CmsEntryMeta } from "@webiny/api-headless-cms/types";
2
+ import type { CmsEntryMeta } from "@webiny/api-headless-cms/types";
3
3
  export declare const emptyResolver: () => {};
4
4
  interface ResolveCallable<T = any> {
5
5
  (): Promise<T>;
6
6
  }
7
- export declare const resolve: <T = any>(fn: ResolveCallable<T>) => Promise<Response<Awaited<T>> | ErrorResponse>;
8
- export declare const resolveList: (fn: ResolveCallable) => Promise<ListResponse<any, CmsEntryMeta> | ListErrorResponse>;
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
9
  export {};
@@ -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 { 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"}
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,9 +1,6 @@
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";
1
+ import type { APIGatewayProxyResult, Context as LambdaContext } from "@webiny/aws-sdk/types";
2
+ import type { HandlerParams, ITaskRawEvent } from "./types";
5
3
  export interface HandlerCallable {
6
- (event: ITaskEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
4
+ (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
7
5
  }
8
- export declare type HandlerParams = HandlerFactoryParams;
9
6
  export declare const createHandler: (params: HandlerParams) => HandlerCallable;
package/handler/index.js CHANGED
@@ -9,6 +9,8 @@ var _plugins = require("@webiny/handler-aws/plugins");
9
9
  var _execute = require("@webiny/handler-aws/execute");
10
10
  var _types = require("../types");
11
11
  var _runner = require("../runner");
12
+ var _utils = require("@webiny/handler-aws/utils");
13
+ var _TaskEventValidation = require("../runner/TaskEventValidation");
12
14
  const url = "/webiny-background-task-event";
13
15
  const createHandler = params => {
14
16
  return async (event, context) => {
@@ -37,12 +39,12 @@ const createHandler = params => {
37
39
  };
38
40
  return reply.send();
39
41
  });
40
- app.post(url, async (request, reply) => {
41
- const handler = new _runner.TaskRunner(context, request, reply,
42
+ app.post(url, async (_, reply) => {
43
+ const handler = new _runner.TaskRunner(
42
44
  /**
43
45
  * We can safely cast because we know that the context is of type tasks/Context
44
46
  */
45
- app.webiny);
47
+ app.webiny, (0, _utils.timerFactory)(context), new _TaskEventValidation.TaskEventValidation());
46
48
  app.__webiny_raw_result = await handler.run(event);
47
49
  return reply.send({});
48
50
  });
@@ -54,7 +56,9 @@ const createHandler = params => {
54
56
  headers: {
55
57
  ["x-tenant"]: event.tenant,
56
58
  ["x-webiny-cms-endpoint"]: event.endpoint,
57
- ["x-webiny-cms-locale"]: event.locale
59
+ ["x-webiny-cms-locale"]: event.locale,
60
+ ["x-i18n-locale"]: event.locale,
61
+ ["accept-language"]: event.locale
58
62
  }
59
63
  }
60
64
  });
@@ -1 +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"}
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,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _registry = require("@webiny/handler-aws/registry");
4
- var _index = require("./index");
5
4
  var _handlerAws = require("@webiny/handler-aws");
6
5
  const handler = (0, _handlerAws.createSourceHandler)({
7
6
  name: "handler-webiny-background-task",
@@ -13,9 +12,14 @@ const handler = (0, _handlerAws.createSourceHandler)({
13
12
  event,
14
13
  context
15
14
  }) => {
16
- return (0, _index.createHandler)(params)(event.payload, context);
15
+ const {
16
+ createHandler
17
+ } = await import(/* webpackChunkName: "tasks.handler.createHandler" */"./index");
18
+ return createHandler(params)(event.payload, context);
17
19
  }
18
20
  });
19
- _registry.registry.register(handler);
21
+ _registry.registry.register(handler, {
22
+ silent: true
23
+ });
20
24
 
21
25
  //# sourceMappingURL=register.js.map
@@ -1 +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"}
1
+ {"version":3,"names":["_registry","require","_handlerAws","handler","createSourceHandler","name","canUse","event","payload","webinyTaskId","handle","params","context","createHandler","registry","register","silent"],"sources":["register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, 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 const { createHandler } = await import(\n /* webpackChunkName: \"tasks.handler.createHandler\" */\n \"./index\"\n );\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler, {\n silent: true\n});\n"],"mappings":";;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,MAAME,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,MAAM;MAAEC;IAAc,CAAC,GAAG,MAAM,MAAM,CAClC,8DAEJ,CAAC;IACD,OAAOA,aAAa,CAACF,MAAM,CAAC,CAACJ,KAAK,CAACC,OAAO,EAAEI,OAAO,CAAC;EACxD;AACJ,CAAC,CAAC;AAEFE,kBAAQ,CAACC,QAAQ,CAACZ,OAAO,EAAE;EACvBa,MAAM,EAAE;AACZ,CAAC,CAAC","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ import type { HandlerFactoryParams } from "@webiny/handler-aws/types";
2
+ export type HandlerParams = HandlerFactoryParams;
1
3
  export interface IIncomingEvent<TEvent> {
2
4
  name: string;
3
5
  payload: TEvent;
@@ -7,6 +9,7 @@ export interface ITaskEventInput {
7
9
  locale: string;
8
10
  webinyTaskId: string;
9
11
  webinyTaskDefinitionId: string;
12
+ delay?: number;
10
13
  }
11
14
  export interface ITaskEvent {
12
15
  tenant: string;
@@ -17,3 +20,6 @@ export interface ITaskEvent {
17
20
  executionName: string;
18
21
  stateMachineId: string;
19
22
  }
23
+ export interface ITaskRawEvent extends ITaskEvent {
24
+ delay?: number;
25
+ }
@@ -1 +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":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { HandlerFactoryParams } from \"@webiny/handler-aws/types\";\n\nexport type HandlerParams = HandlerFactoryParams;\n\nexport 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 delay?: number;\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\nexport interface ITaskRawEvent extends ITaskEvent {\n delay?: number;\n}\n"],"mappings":"","ignoreList":[]}
package/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
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[];
2
+ export { createBackgroundTaskGraphQL } from "./graphql";
3
+ export { createBackgroundTaskContext } from "./context";
6
4
  export * from "./task";
5
+ export * from "./response";
7
6
  export * from "./types";
package/index.js CHANGED
@@ -7,11 +7,21 @@ var _exportNames = {
7
7
  createBackgroundTaskGraphQL: true,
8
8
  createBackgroundTaskContext: true
9
9
  };
10
- exports.createBackgroundTaskGraphQL = exports.createBackgroundTaskContext = void 0;
10
+ Object.defineProperty(exports, "createBackgroundTaskContext", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _context.createBackgroundTaskContext;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "createBackgroundTaskGraphQL", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _graphql.createBackgroundTaskGraphQL;
20
+ }
21
+ });
11
22
  require("./handler/register");
12
23
  var _graphql = require("./graphql");
13
24
  var _context = require("./context");
14
- var _testingRunTask = require("./tasks/testingRunTask");
15
25
  var _task = require("./task");
16
26
  Object.keys(_task).forEach(function (key) {
17
27
  if (key === "default" || key === "__esModule") return;
@@ -24,6 +34,18 @@ Object.keys(_task).forEach(function (key) {
24
34
  }
25
35
  });
26
36
  });
37
+ var _response = require("./response");
38
+ Object.keys(_response).forEach(function (key) {
39
+ if (key === "default" || key === "__esModule") return;
40
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
41
+ if (key in exports && exports[key] === _response[key]) return;
42
+ Object.defineProperty(exports, key, {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _response[key];
46
+ }
47
+ });
48
+ });
27
49
  var _types = require("./types");
28
50
  Object.keys(_types).forEach(function (key) {
29
51
  if (key === "default" || key === "__esModule") return;
@@ -36,13 +58,5 @@ Object.keys(_types).forEach(function (key) {
36
58
  }
37
59
  });
38
60
  });
39
- const createBackgroundTaskGraphQL = () => {
40
- return [(0, _graphql.createGraphQL)()];
41
- };
42
- exports.createBackgroundTaskGraphQL = createBackgroundTaskGraphQL;
43
- const createBackgroundTaskContext = config => {
44
- return [(0, _testingRunTask.createTestingRunTask)(), ...(0, _context.createTasksContext)(config)];
45
- };
46
- exports.createBackgroundTaskContext = createBackgroundTaskContext;
47
61
 
48
62
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["require","_graphql","_context","_testingRunTask","_task","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","createBackgroundTaskGraphQL","createGraphQL","createBackgroundTaskContext","config","createTestingRunTask","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\";\nimport { createTestingRunTask } from \"~/tasks/testingRunTask\";\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\nexport const createBackgroundTaskContext = (config?: ITaskConfig): Plugin[] => {\n return [createTestingRunTask(), ...createTasksContext(config)];\n};\n\nexport * from \"./task\";\nexport * from \"./types\";\n"],"mappings":";;;;;;;;;;AAAAA,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AASA,IAAAI,KAAA,GAAAJ,OAAA;AAAAK,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,GAAAjB,OAAA;AAAAK,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,CAAC,IAAAC,oCAAoB,EAAC,CAAC,EAAE,GAAG,IAAAC,2BAAkB,EAACF,MAAM,CAAC,CAAC;AAClE,CAAC;AAACR,OAAA,CAAAO,2BAAA,GAAAA,2BAAA"}
1
+ {"version":3,"names":["require","_graphql","_context","_task","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_response","_types"],"sources":["index.ts"],"sourcesContent":["import \"./handler/register\";\n\nexport { createBackgroundTaskGraphQL } from \"./graphql\";\nexport { createBackgroundTaskContext } from \"./context\";\n\nexport * from \"./task\";\nexport * from \"./response\";\nexport * from \"./types\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAAA,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,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,SAAA,GAAAhB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAW,SAAA,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,SAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,SAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,MAAA,GAAAjB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAY,MAAA,EAAAX,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,MAAAU,MAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAV,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/tasks",
3
- "version": "0.0.0-unstable.a9593f74dd",
3
+ "version": "0.0.0-unstable.e53eceafb5",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,45 +12,39 @@
12
12
  ],
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@babel/runtime": "7.22.6",
16
- "@webiny/api": "0.0.0-unstable.a9593f74dd",
17
- "@webiny/api-headless-cms": "0.0.0-unstable.a9593f74dd",
18
- "@webiny/aws-sdk": "0.0.0-unstable.a9593f74dd",
19
- "@webiny/error": "0.0.0-unstable.a9593f74dd",
20
- "@webiny/handler": "0.0.0-unstable.a9593f74dd",
21
- "@webiny/handler-aws": "0.0.0-unstable.a9593f74dd",
22
- "@webiny/handler-graphql": "0.0.0-unstable.a9593f74dd",
23
- "@webiny/plugins": "0.0.0-unstable.a9593f74dd",
24
- "@webiny/pubsub": "0.0.0-unstable.a9593f74dd",
25
- "@webiny/utils": "0.0.0-unstable.a9593f74dd",
26
- "aws-lambda": "1.0.7",
15
+ "@webiny/api": "0.0.0-unstable.e53eceafb5",
16
+ "@webiny/api-headless-cms": "0.0.0-unstable.e53eceafb5",
17
+ "@webiny/aws-sdk": "0.0.0-unstable.e53eceafb5",
18
+ "@webiny/error": "0.0.0-unstable.e53eceafb5",
19
+ "@webiny/handler": "0.0.0-unstable.e53eceafb5",
20
+ "@webiny/handler-aws": "0.0.0-unstable.e53eceafb5",
21
+ "@webiny/handler-graphql": "0.0.0-unstable.e53eceafb5",
22
+ "@webiny/plugins": "0.0.0-unstable.e53eceafb5",
23
+ "@webiny/pubsub": "0.0.0-unstable.e53eceafb5",
24
+ "@webiny/utils": "0.0.0-unstable.e53eceafb5",
27
25
  "deep-equal": "2.2.3",
28
26
  "lodash": "4.17.21",
29
- "zod": "3.21.4"
27
+ "object-merge-advanced": "12.1.0",
28
+ "object-sizeof": "2.6.5",
29
+ "zod": "3.23.8"
30
30
  },
31
31
  "devDependencies": {
32
- "@babel/cli": "7.22.6",
33
- "@babel/core": "7.22.8",
34
- "@babel/preset-env": "7.22.7",
35
- "@babel/preset-typescript": "7.22.5",
36
- "@webiny/api-i18n": "0.0.0-unstable.a9593f74dd",
37
- "@webiny/api-security": "0.0.0-unstable.a9593f74dd",
38
- "@webiny/api-tenancy": "0.0.0-unstable.a9593f74dd",
39
- "@webiny/api-wcp": "0.0.0-unstable.a9593f74dd",
40
- "@webiny/cli": "0.0.0-unstable.a9593f74dd",
41
- "@webiny/project-utils": "0.0.0-unstable.a9593f74dd",
42
- "rimraf": "3.0.2",
43
- "ttypescript": "1.5.15",
44
- "type-fest": "2.19.0",
45
- "typescript": "4.7.4"
32
+ "@webiny/api-i18n": "0.0.0-unstable.e53eceafb5",
33
+ "@webiny/api-security": "0.0.0-unstable.e53eceafb5",
34
+ "@webiny/api-tenancy": "0.0.0-unstable.e53eceafb5",
35
+ "@webiny/api-wcp": "0.0.0-unstable.e53eceafb5",
36
+ "@webiny/project-utils": "0.0.0-unstable.e53eceafb5",
37
+ "rimraf": "6.0.1",
38
+ "type-fest": "4.14.0",
39
+ "typescript": "5.3.3"
46
40
  },
47
41
  "publishConfig": {
48
42
  "access": "public",
49
43
  "directory": "dist"
50
44
  },
51
45
  "scripts": {
52
- "build": "yarn webiny run build",
53
- "watch": "yarn webiny run watch"
46
+ "build": "node ../cli/bin.js run build",
47
+ "watch": "node ../cli/bin.js run watch"
54
48
  },
55
- "gitHead": "a9593f74ddf9ce93263eadb0ddc0807ed343f5ee"
49
+ "gitHead": "e53eceafb5ce1a3872c9b4548939bb2eae5b1aef"
56
50
  }
@@ -0,0 +1,20 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import type { ITask } from "../types";
3
+ export interface ITaskServiceCreatePluginParams {
4
+ getTenant(): string;
5
+ getLocale(): string;
6
+ }
7
+ export type ITaskServiceTask = Pick<ITask, "id" | "definitionId">;
8
+ export interface ITaskService {
9
+ send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;
10
+ fetch(task: ITask): Promise<unknown | null>;
11
+ }
12
+ export interface ITaskServicePluginParams {
13
+ default?: boolean;
14
+ }
15
+ export declare abstract class TaskServicePlugin extends Plugin {
16
+ static readonly type: string;
17
+ readonly default: boolean;
18
+ constructor(params?: ITaskServicePluginParams);
19
+ abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;
20
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TaskServicePlugin = void 0;
7
+ var _plugins = require("@webiny/plugins");
8
+ class TaskServicePlugin extends _plugins.Plugin {
9
+ static type = "tasks.taskService";
10
+ constructor(params) {
11
+ super();
12
+ this.default = !!params?.default;
13
+ }
14
+ }
15
+ exports.TaskServicePlugin = TaskServicePlugin;
16
+
17
+ //# sourceMappingURL=TaskServicePlugin.js.map