@webiny/tasks 6.2.0-beta.0 → 6.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/features/AbortTask/feature.d.ts +4 -1
- package/features/GetTask/feature.d.ts +4 -1
- package/features/GetTaskDefinition/feature.d.ts +4 -1
- package/features/ListTaskDefinitions/feature.d.ts +4 -1
- package/features/ListTasks/feature.d.ts +4 -1
- package/features/TaskExecutionContext/feature.d.ts +4 -1
- package/features/TriggerTask/feature.d.ts +4 -1
- package/graphql/index.js +1 -14
- package/graphql/index.js.map +1 -1
- package/package.json +17 -17
- package/response/ResponseDoneResult.js.map +1 -1
- package/runner/TaskManagerStore.js.map +1 -1
- package/types.d.ts +1 -0
- package/types.js +2 -0
- package/types.js.map +1 -1
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { Context } from "../../types.js";
|
|
2
|
-
export declare const AbortTaskFeature:
|
|
2
|
+
export declare const AbortTaskFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: import("@webiny/di").Container, context: Context): void;
|
|
5
|
+
};
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { Context } from "../../types.js";
|
|
2
|
-
export declare const GetTaskFeature:
|
|
2
|
+
export declare const GetTaskFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: import("@webiny/di").Container, context: Context): void;
|
|
5
|
+
};
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { Context } from "../../types.js";
|
|
2
|
-
export declare const ListTasksFeature:
|
|
2
|
+
export declare const ListTasksFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: import("@webiny/di").Container, context: Context): void;
|
|
5
|
+
};
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { Context } from "../../types.js";
|
|
2
|
-
export declare const TriggerTaskFeature:
|
|
2
|
+
export declare const TriggerTaskFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: import("@webiny/di").Container, context: Context): void;
|
|
5
|
+
};
|
package/graphql/index.js
CHANGED
|
@@ -7,14 +7,6 @@ import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
|
|
|
7
7
|
import { checkPermissions } from "./checkPermissions.js";
|
|
8
8
|
import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
|
|
9
9
|
import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
|
|
10
|
-
const createWebinyBackgroundTaskDefinitionEnum = items => {
|
|
11
|
-
if (items.length === 0) {
|
|
12
|
-
return "Empty";
|
|
13
|
-
}
|
|
14
|
-
return items.filter(item => {
|
|
15
|
-
return !item.isPrivate;
|
|
16
|
-
}).map(definition => definition.id).join("\n");
|
|
17
|
-
};
|
|
18
10
|
const createGraphQL = () => {
|
|
19
11
|
const plugin = new ContextPlugin(async ctx => {
|
|
20
12
|
if (!ctx.tenancy.getCurrentTenant()) {
|
|
@@ -70,7 +62,6 @@ const createGraphQL = () => {
|
|
|
70
62
|
fieldRegistry,
|
|
71
63
|
sorters: []
|
|
72
64
|
});
|
|
73
|
-
const taskDefinitions = ctx.tasks.listDefinitions();
|
|
74
65
|
const plugin = new GraphQLSchemaPlugin({
|
|
75
66
|
typeDefs: /* GraphQL */`
|
|
76
67
|
type WebinyBackgroundTaskError {
|
|
@@ -178,10 +169,6 @@ const createGraphQL = () => {
|
|
|
178
169
|
_empty: String
|
|
179
170
|
}
|
|
180
171
|
|
|
181
|
-
enum WebinyBackgroundTaskDefinitionEnum {
|
|
182
|
-
${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
172
|
extend type Query {
|
|
186
173
|
backgroundTasks: WebinyBackgroundTaskQuery
|
|
187
174
|
}
|
|
@@ -211,7 +198,7 @@ const createGraphQL = () => {
|
|
|
211
198
|
}
|
|
212
199
|
|
|
213
200
|
extend type WebinyBackgroundTaskMutation {
|
|
214
|
-
triggerTask(definition:
|
|
201
|
+
triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!
|
|
215
202
|
abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
|
|
216
203
|
deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
|
|
217
204
|
}
|
package/graphql/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GraphQLSchemaPlugin","renderSortEnum","ContextPlugin","renderListFilterFields","emptyResolver","resolve","resolveList","renderFields","checkPermissions","ListModelsUseCase","CmsModelFieldToGraphQLRegistry","createWebinyBackgroundTaskDefinitionEnum","items","length","filter","item","isPrivate","map","definition","id","join","createGraphQL","plugin","ctx","tenancy","getCurrentTenant","taskModel","tasks","getTaskModel","logModel","getLogModel","listModels","container","fieldRegistry","models","security","withoutAuthorization","modelsResult","execute","includePrivate","value","model","fields","taskFields","type","logFields","field","fieldId","listTasksFilterFieldsRender","excludeFields","listLogsFilterFieldsRender","sortTasksEnumRender","sorters","sortLogsEnumRender","taskDefinitions","listDefinitions","typeDefs","f","allFiltersAsString","resolvers","Query","backgroundTasks","Mutation","WebinyBackgroundTaskQuery","getTask","_","args","context","rwd","listTasks","__","result","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","isOk","error","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","sort","limit","where","task","WebinyBackgroundTaskLog","name","plugins","register","createBackgroundTaskGraphQL"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/types.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createWebinyBackgroundTaskDefinitionEnum = (items: TaskDefinition.Interface[]): string => {\n if (items.length === 0) {\n return \"Empty\";\n }\n return items\n .filter(item => {\n return !item.isPrivate;\n })\n .map(definition => definition.id)\n .join(\"\\n\");\n};\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const listModels = ctx.container.resolve(ListModelsUseCase);\n const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);\n\n const models = await ctx.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldRegistry\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const taskDefinitions = ctx.tasks.listDefinitions();\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n enum WebinyBackgroundTaskDefinitionEnum {\n ${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.abort(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.trigger(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n\n plugin.name = \"tasks.graphql.schema\";\n\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,cAAc,QAAQ,kDAAkD;AACjF,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,sBAAsB,QAAQ,0DAA0D;AACjG,SAASC,aAAa,EAAEC,OAAO,EAAEC,WAAW;AAC5C,SAASC,YAAY,QAAQ,gDAAgD;AAC7E,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB,QAAQ,oEAAoE;AAEtG,SAASC,8BAA8B,QAAQ,qDAAqD;AAsBpG,MAAMC,wCAAwC,GAAIC,KAAiC,IAAa;EAC5F,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;IACpB,OAAO,OAAO;EAClB;EACA,OAAOD,KAAK,CACPE,MAAM,CAACC,IAAI,IAAI;IACZ,OAAO,CAACA,IAAI,CAACC,SAAS;EAC1B,CAAC,CAAC,CACDC,GAAG,CAACC,UAAU,IAAIA,UAAU,CAACC,EAAE,CAAC,CAChCC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACxB,MAAMC,MAAM,GAAG,IAAIpB,aAAa,CAAU,MAAMqB,GAAG,IAAI;IACnD,IAAI,CAACA,GAAG,CAACC,OAAO,CAACC,gBAAgB,CAAC,CAAC,EAAE;MACjC;IACJ;IAEA,MAAMC,SAAS,GAAG,MAAMH,GAAG,CAACI,KAAK,CAACC,YAAY,CAAC,CAAC;IAChD,MAAMC,QAAQ,GAAG,MAAMN,GAAG,CAACI,KAAK,CAACG,WAAW,CAAC,CAAC;IAE9C,MAAMC,UAAU,GAAGR,GAAG,CAACS,SAAS,CAAC3B,OAAO,CAACI,iBAAiB,CAAC;IAC3D,MAAMwB,aAAa,GAAGV,GAAG,CAACS,SAAS,CAAC3B,OAAO,CAACK,8BAA8B,CAAC;IAE3E,MAAMwB,MAAM,GAAG,MAAMX,GAAG,CAACY,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MAC/D,MAAMC,YAAY,GAAG,MAAMN,UAAU,CAACO,OAAO,CAAC;QAAEC,cAAc,EAAE;MAAM,CAAC,CAAC;MAExE,OAAOF,YAAY,CAACG,KAAK,CAAC1B,MAAM,CAAC2B,KAAK,IAAIA,KAAK,CAACC,MAAM,CAAC7B,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC,CAAC;IACF,MAAM8B,UAAU,GAAGpC,YAAY,CAAC;MAC5B2B,MAAM;MACNO,KAAK,EAAEf,SAAS;MAChBgB,MAAM,EAAEhB,SAAS,CAACgB,MAAM;MACxBE,IAAI,EAAE,QAAQ;MACdX;IACJ,CAAC,CAAC;IAEF,MAAMY,SAAS,GAAGtC,YAAY,CAAC;MAC3B2B,MAAM;MACNO,KAAK,EAAEZ,QAAQ;MACfa,MAAM,EAAEb,QAAQ,CAACa,MAAM,CAAC5B,MAAM,CAACgC,KAAK,IAAIA,KAAK,CAACC,OAAO,KAAK,MAAM,CAAC;MACjEH,IAAI,EAAE,QAAQ;MACdX;IACJ,CAAC,CAAC;IAEF,MAAMe,2BAA2B,GAAG7C,sBAAsB,CAAC;MACvDsC,KAAK,EAAEf,SAAS;MAChBgB,MAAM,EAAEhB,SAAS,CAACgB,MAAM;MACxBE,IAAI,EAAE,QAAQ;MACdX,aAAa;MACbgB,aAAa,EAAE,CAAC,SAAS;IAC7B,CAAC,CAAC;IAEF,MAAMC,0BAA0B,GAAG/C,sBAAsB,CAAC;MACtDsC,KAAK,EAAEZ,QAAQ;MACfa,MAAM,EAAEb,QAAQ,CAACa,MAAM;MACvBE,IAAI,EAAE,QAAQ;MACdX,aAAa;MACbgB,aAAa,EAAE,CAAC,SAAS;IAC7B,CAAC,CAAC;IAEF,MAAME,mBAAmB,GAAGlD,cAAc,CAAC;MACvCwC,KAAK,EAAEf,SAAS;MAChBgB,MAAM,EAAEhB,SAAS,CAACgB,MAAM;MACxBT,aAAa;MACbmB,OAAO,EAAE;IACb,CAAC,CAAC;IAEF,MAAMC,kBAAkB,GAAGpD,cAAc,CAAC;MACtCwC,KAAK,EAAEZ,QAAQ;MACfa,MAAM,EAAEb,QAAQ,CAACa,MAAM;MACvBT,aAAa;MACbmB,OAAO,EAAE;IACb,CAAC,CAAC;IAEF,MAAME,eAAe,GAAG/B,GAAG,CAACI,KAAK,CAAC4B,eAAe,CAAC,CAAC;IAEnD,MAAMjC,MAAM,GAAG,IAAItB,mBAAmB,CAAU;MAC5CwD,QAAQ,EAAE,aAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBb,UAAU,CAAC1B,GAAG,CAACwC,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACpC,IAAI,CAAC,IAAI,CAAC;AAC5D,kBAAkByB,SAAS,CAAC5B,GAAG,CAACwC,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACpC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBuB,UAAU,CAAC1B,GAAG,CAACwC,CAAC,IAAIA,CAAC,CAACf,MAAM,CAAC,CAACtB,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,sBAAsByB,SAAS,CAAC5B,GAAG,CAACwC,CAAC,IAAIA,CAAC,CAACf,MAAM,CAAC,CAACtB,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,sBAAsB4B,2BAA2B,CAACU,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AAC1F;AACA;AACA;AACA,sBAAsBR,0BAA0B,CAACQ,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AACzF;AACA;AACA;AACA,sBAAsBP,mBAAmB;AACzC;AACA;AACA;AACA,sBAAsBE,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB1C,wCAAwC,CAAC2C,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,aAA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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["GraphQLSchemaPlugin","renderSortEnum","ContextPlugin","renderListFilterFields","emptyResolver","resolve","resolveList","renderFields","checkPermissions","ListModelsUseCase","CmsModelFieldToGraphQLRegistry","createGraphQL","plugin","ctx","tenancy","getCurrentTenant","taskModel","tasks","getTaskModel","logModel","getLogModel","listModels","container","fieldRegistry","models","security","withoutAuthorization","modelsResult","execute","includePrivate","value","filter","model","fields","length","taskFields","type","logFields","field","fieldId","listTasksFilterFieldsRender","excludeFields","listLogsFilterFieldsRender","sortTasksEnumRender","sorters","sortLogsEnumRender","typeDefs","map","f","join","allFiltersAsString","resolvers","Query","backgroundTasks","Mutation","WebinyBackgroundTaskQuery","getTask","_","args","context","rwd","id","listTasks","listDefinitions","__","result","item","isPrivate","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","isOk","error","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","items","sort","limit","where","task","WebinyBackgroundTaskLog","name","plugins","register","createBackgroundTaskGraphQL"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/types.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const listModels = ctx.container.resolve(ListModelsUseCase);\n const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);\n\n const models = await ctx.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldRegistry\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n 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: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.abort(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.trigger(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n\n plugin.name = \"tasks.graphql.schema\";\n\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,cAAc,QAAQ,kDAAkD;AACjF,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,sBAAsB,QAAQ,0DAA0D;AACjG,SAASC,aAAa,EAAEC,OAAO,EAAEC,WAAW;AAC5C,SAASC,YAAY,QAAQ,gDAAgD;AAC7E,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,8BAA8B,QAAQ,qDAAqD;AAsBpG,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACxB,MAAMC,MAAM,GAAG,IAAIV,aAAa,CAAU,MAAMW,GAAG,IAAI;IACnD,IAAI,CAACA,GAAG,CAACC,OAAO,CAACC,gBAAgB,CAAC,CAAC,EAAE;MACjC;IACJ;IAEA,MAAMC,SAAS,GAAG,MAAMH,GAAG,CAACI,KAAK,CAACC,YAAY,CAAC,CAAC;IAChD,MAAMC,QAAQ,GAAG,MAAMN,GAAG,CAACI,KAAK,CAACG,WAAW,CAAC,CAAC;IAE9C,MAAMC,UAAU,GAAGR,GAAG,CAACS,SAAS,CAACjB,OAAO,CAACI,iBAAiB,CAAC;IAC3D,MAAMc,aAAa,GAAGV,GAAG,CAACS,SAAS,CAACjB,OAAO,CAACK,8BAA8B,CAAC;IAE3E,MAAMc,MAAM,GAAG,MAAMX,GAAG,CAACY,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MAC/D,MAAMC,YAAY,GAAG,MAAMN,UAAU,CAACO,OAAO,CAAC;QAAEC,cAAc,EAAE;MAAM,CAAC,CAAC;MAExE,OAAOF,YAAY,CAACG,KAAK,CAACC,MAAM,CAACC,KAAK,IAAIA,KAAK,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC,CAAC;IACF,MAAMC,UAAU,GAAG5B,YAAY,CAAC;MAC5BiB,MAAM;MACNQ,KAAK,EAAEhB,SAAS;MAChBiB,MAAM,EAAEjB,SAAS,CAACiB,MAAM;MACxBG,IAAI,EAAE,QAAQ;MACdb;IACJ,CAAC,CAAC;IAEF,MAAMc,SAAS,GAAG9B,YAAY,CAAC;MAC3BiB,MAAM;MACNQ,KAAK,EAAEb,QAAQ;MACfc,MAAM,EAAEd,QAAQ,CAACc,MAAM,CAACF,MAAM,CAACO,KAAK,IAAIA,KAAK,CAACC,OAAO,KAAK,MAAM,CAAC;MACjEH,IAAI,EAAE,QAAQ;MACdb;IACJ,CAAC,CAAC;IAEF,MAAMiB,2BAA2B,GAAGrC,sBAAsB,CAAC;MACvD6B,KAAK,EAAEhB,SAAS;MAChBiB,MAAM,EAAEjB,SAAS,CAACiB,MAAM;MACxBG,IAAI,EAAE,QAAQ;MACdb,aAAa;MACbkB,aAAa,EAAE,CAAC,SAAS;IAC7B,CAAC,CAAC;IAEF,MAAMC,0BAA0B,GAAGvC,sBAAsB,CAAC;MACtD6B,KAAK,EAAEb,QAAQ;MACfc,MAAM,EAAEd,QAAQ,CAACc,MAAM;MACvBG,IAAI,EAAE,QAAQ;MACdb,aAAa;MACbkB,aAAa,EAAE,CAAC,SAAS;IAC7B,CAAC,CAAC;IAEF,MAAME,mBAAmB,GAAG1C,cAAc,CAAC;MACvC+B,KAAK,EAAEhB,SAAS;MAChBiB,MAAM,EAAEjB,SAAS,CAACiB,MAAM;MACxBV,aAAa;MACbqB,OAAO,EAAE;IACb,CAAC,CAAC;IAEF,MAAMC,kBAAkB,GAAG5C,cAAc,CAAC;MACtC+B,KAAK,EAAEb,QAAQ;MACfc,MAAM,EAAEd,QAAQ,CAACc,MAAM;MACvBV,aAAa;MACbqB,OAAO,EAAE;IACb,CAAC,CAAC;IAEF,MAAMhC,MAAM,GAAG,IAAIZ,mBAAmB,CAAU;MAC5C8C,QAAQ,EAAE,aAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBX,UAAU,CAACY,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACF,QAAQ,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;AAC5D,kBAAkBZ,SAAS,CAACU,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACF,QAAQ,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBd,UAAU,CAACY,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACf,MAAM,CAAC,CAACgB,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,sBAAsBZ,SAAS,CAACU,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACf,MAAM,CAAC,CAACgB,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,sBAAsBT,2BAA2B,CAACU,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AAC1F;AACA;AACA;AACA,sBAAsBR,0BAA0B,CAACQ,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AACzF;AACA;AACA;AACA,sBAAsBP,mBAAmB;AACzC;AACA;AACA;AACA,sBAAsBE,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;MACDM,SAAS,EAAE;QACPC,KAAK,EAAE;UACHC,eAAe,EAAEjD;QACrB,CAAC;QACDkD,QAAQ,EAAE;UACND,eAAe,EAAEjD;QACrB,CAAC;QACDmD,yBAAyB,EAAE;UACvB;AACpB;AACA;UACoBC,OAAO,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAyB,EAAEC,OAAO,KAAK;YACtD,OAAOtD,OAAO,CAAC,YAAY;cACvB,MAAMG,gBAAgB,CAACmD,OAAO,EAAE;gBAC5BC,GAAG,EAAE;cACT,CAAC,CAAC;cACF,OAAO,MAAMD,OAAO,CAAC1C,KAAK,CAACuC,OAAO,CAACE,IAAI,CAACG,EAAE,CAAC;YAC/C,CAAC,CAAC;UACN,CAAC;UACDC,SAAS,EA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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/tasks",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -13,17 +13,17 @@
|
|
|
13
13
|
],
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@webiny/api": "6.
|
|
17
|
-
"@webiny/api-core": "6.
|
|
18
|
-
"@webiny/api-headless-cms": "6.
|
|
19
|
-
"@webiny/aws-sdk": "6.
|
|
20
|
-
"@webiny/error": "6.
|
|
21
|
-
"@webiny/feature": "6.
|
|
22
|
-
"@webiny/handler": "6.
|
|
23
|
-
"@webiny/handler-aws": "6.
|
|
24
|
-
"@webiny/handler-graphql": "6.
|
|
25
|
-
"@webiny/plugins": "6.
|
|
26
|
-
"@webiny/utils": "6.
|
|
16
|
+
"@webiny/api": "6.3.0-beta.0",
|
|
17
|
+
"@webiny/api-core": "6.3.0-beta.0",
|
|
18
|
+
"@webiny/api-headless-cms": "6.3.0-beta.0",
|
|
19
|
+
"@webiny/aws-sdk": "6.3.0-beta.0",
|
|
20
|
+
"@webiny/error": "6.3.0-beta.0",
|
|
21
|
+
"@webiny/feature": "6.3.0-beta.0",
|
|
22
|
+
"@webiny/handler": "6.3.0-beta.0",
|
|
23
|
+
"@webiny/handler-aws": "6.3.0-beta.0",
|
|
24
|
+
"@webiny/handler-graphql": "6.3.0-beta.0",
|
|
25
|
+
"@webiny/plugins": "6.3.0-beta.0",
|
|
26
|
+
"@webiny/utils": "6.3.0-beta.0",
|
|
27
27
|
"deep-equal": "2.2.3",
|
|
28
28
|
"lodash": "4.18.1",
|
|
29
29
|
"object-merge-advanced": "14.1.3",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
"zod": "4.3.6"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@webiny/build-tools": "6.
|
|
35
|
-
"@webiny/project-utils": "6.
|
|
34
|
+
"@webiny/build-tools": "6.3.0-beta.0",
|
|
35
|
+
"@webiny/project-utils": "6.3.0-beta.0",
|
|
36
36
|
"rimraf": "6.1.3",
|
|
37
|
-
"type-fest": "5.
|
|
38
|
-
"typescript": "
|
|
37
|
+
"type-fest": "5.6.0",
|
|
38
|
+
"typescript": "6.0.3",
|
|
39
39
|
"vitest": "4.1.4"
|
|
40
40
|
},
|
|
41
41
|
"publishConfig": {
|
|
42
42
|
"access": "public",
|
|
43
43
|
"directory": "dist"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "94c21e58aebc9855bf1ae972423281faa0f5c135"
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TaskResultStatus","ResponseDoneResult","status","DONE","constructor","params","message","webinyTaskId","webinyTaskDefinitionId","tenant","output","Object","keys","length","undefined"],"sources":["ResponseDoneResult.ts"],"sourcesContent":["import type { IResponseDoneResult } from \"./abstractions/index.js\";\nimport {\n TaskDefinition,\n TaskResultStatus\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseDoneResult
|
|
1
|
+
{"version":3,"names":["TaskResultStatus","ResponseDoneResult","status","DONE","constructor","params","message","webinyTaskId","webinyTaskDefinitionId","tenant","output","Object","keys","length","undefined"],"sources":["ResponseDoneResult.ts"],"sourcesContent":["import type { IResponseDoneResult } from \"./abstractions/index.js\";\nimport {\n TaskDefinition,\n TaskResultStatus\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseDoneResult<\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements IResponseDoneResult<O> {\n public readonly message?: string | undefined;\n public readonly webinyTaskId: string;\n public readonly webinyTaskDefinitionId: string;\n public readonly tenant: string;\n public readonly output?: O;\n public readonly status: TaskResultStatus.DONE = TaskResultStatus.DONE;\n\n public constructor(params: Omit<IResponseDoneResult<O>, \"status\">) {\n this.message = params.message;\n this.webinyTaskId = params.webinyTaskId;\n this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;\n this.tenant = params.tenant;\n this.output = Object.keys(params.output || {}).length > 0 ? params.output : undefined;\n }\n}\n"],"mappings":"AACA,SAEIA,gBAAgB,QACb,wDAAwD;AAE/D,OAAO,MAAMC,kBAAkB,CAEK;EAMhBC,MAAM,GAA0BF,gBAAgB,CAACG,IAAI;EAE9DC,WAAWA,CAACC,MAA8C,EAAE;IAC/D,IAAI,CAACC,OAAO,GAAGD,MAAM,CAACC,OAAO;IAC7B,IAAI,CAACC,YAAY,GAAGF,MAAM,CAACE,YAAY;IACvC,IAAI,CAACC,sBAAsB,GAAGH,MAAM,CAACG,sBAAsB;IAC3D,IAAI,CAACC,MAAM,GAAGJ,MAAM,CAACI,MAAM;IAC3B,IAAI,CAACC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACP,MAAM,CAACK,MAAM,IAAI,CAAC,CAAC,CAAC,CAACG,MAAM,GAAG,CAAC,GAAGR,MAAM,CAACK,MAAM,GAAGI,SAAS;EACzF;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TaskLogItemType","deepEqual","getObjectProperties","ObjectUpdater","getInput","originalInput","input","TaskManagerStore","taskUpdater","taskLogUpdater","constructor","params","context","task","taskLog","log","databaseLogs","getStatus","taskStatus","getTask","listChildTasks","definitionId","where","parentId","id","result","tasks","listTasks","sort","limit","items","updateTask","param","options","data","update","save","updateInput","updateOutput","values","output","getOutput","addInfoLog","message","type","INFO","createdOn","Date","toISOString","addErrorLog","console","error","Error","ERROR","isDirty","fetch","updateLog"],"sources":["TaskManagerStore.ts"],"sourcesContent":["import type {\n IListTaskParamsWhere,\n ITask,\n ITaskDataInput,\n ITaskLog,\n ITaskManagerStoreInfoLog,\n ITaskManagerStorePrivate,\n ITaskManagerStoreSetOutputOptions,\n ITaskManagerStoreUpdateTaskInputOptions,\n ITaskManagerStoreUpdateTaskOptions,\n ITasksContextObject,\n TaskDataStatus\n} from \"~/types.js\";\nimport { TaskLogItemType } from \"~/types.js\";\nimport type {\n ITaskManagerStoreAddLogOptions,\n ITaskManagerStoreErrorLog,\n ITaskManagerStoreUpdateTaskInputParam,\n ITaskManagerStoreUpdateTaskParams\n} from \"./abstractions/index.js\";\n/**\n * Package deep-equal does not have types.\n */\nimport deepEqual from \"deep-equal\";\nimport { getObjectProperties } from \"~/utils/getObjectProperties.js\";\nimport { ObjectUpdater } from \"~/utils/ObjectUpdater.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nconst getInput = <T extends ITaskDataInput = ITaskDataInput>(\n originalInput: T,\n input: ITaskManagerStoreUpdateTaskInputParam<T>\n): T => {\n if (typeof input === \"function\") {\n return input(originalInput);\n }\n return {\n ...originalInput,\n ...input\n };\n};\n\nexport interface TaskManagerStoreContext {\n tasks: Pick<ITasksContextObject, \"updateTask\" | \"updateLog\" | \"listTasks\">;\n}\n\nexport interface ITaskManagerStoreParams {\n context: TaskManagerStoreContext;\n task: ITask;\n log: ITaskLog;\n databaseLogs: boolean;\n}\n\nexport class TaskManagerStore<\n T extends ITaskDataInput = ITaskDataInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements ITaskManagerStorePrivate<T, O>\n{\n private readonly context: TaskManagerStoreContext;\n private task: ITask<T, O>;\n private taskLog: ITaskLog;\n private readonly databaseLogs: boolean;\n\n private readonly taskUpdater = new ObjectUpdater<ITask<T, O>>();\n private readonly taskLogUpdater = new ObjectUpdater<ITaskLog>();\n\n public constructor(params: ITaskManagerStoreParams) {\n this.context = params.context;\n this.task = params.task as ITask<T, O>;\n this.taskLog = params.log;\n this.databaseLogs = params.databaseLogs === true;\n }\n\n public getStatus(): TaskDataStatus {\n return this.task.taskStatus;\n }\n\n public getTask(): ITask<T, O> {\n return this.task as ITask<T, O>;\n }\n\n public async listChildTasks<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(definitionId?: string): Promise<ITask<I, O>[]> {\n const where: IListTaskParamsWhere = {\n parentId: this.task.id\n };\n if (definitionId) {\n where.definitionId = definitionId;\n }\n const result = await this.context.tasks.listTasks<I, O>({\n where,\n sort: [\"createdOn_ASC\"],\n limit: 1000000\n });\n return result.items;\n }\n\n public async updateTask(\n param: ITaskManagerStoreUpdateTaskParams<T, O>,\n options?: ITaskManagerStoreUpdateTaskOptions\n ): Promise<void> {\n const data = typeof param === \"function\" ? param(this.task) : param;\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(data, this.task)) {\n return;\n }\n\n this.taskUpdater.update(data);\n\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async updateInput(\n param: ITaskManagerStoreUpdateTaskInputParam<T>,\n options?: ITaskManagerStoreUpdateTaskInputOptions\n ): Promise<void> {\n const input = getInput<T>(this.task.input, param);\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(input, this.task.input)) {\n return;\n }\n this.taskUpdater.update({\n input: input as T\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getInput(): T {\n return this.task.input as T;\n }\n\n public async updateOutput(\n values: Partial<O>,\n options: ITaskManagerStoreSetOutputOptions = {}\n ): Promise<void> {\n this.taskUpdater.update({\n output: values as O\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getOutput(): O {\n return this.task.output as O;\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addInfoLog(\n log: ITaskManagerStoreInfoLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (!this.databaseLogs) {\n return;\n }\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n data: log.data,\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n\n await this.save();\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addErrorLog(\n log: ITaskManagerStoreErrorLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (!this.databaseLogs) {\n return;\n }\n /**\n * Let's log the error to the console as well.\n */\n console.error(log.error);\n /**\n * Then update the log object.\n */\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n error: log.error instanceof Error ? getObjectProperties(log.error) : log.error,\n type: TaskLogItemType.ERROR,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async save(): Promise<void> {\n /**\n * Update both task and the log, if anything to update.\n */\n if (this.taskUpdater.isDirty()) {\n this.task = await this.context.tasks.updateTask<T, O>(\n this.task.id,\n this.taskUpdater.fetch()\n );\n }\n if (!this.databaseLogs) {\n return;\n }\n if (this.taskLogUpdater.isDirty()) {\n this.taskLog = await this.context.tasks.updateLog(\n this.taskLog.id,\n this.taskLogUpdater.fetch()\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["TaskLogItemType","deepEqual","getObjectProperties","ObjectUpdater","getInput","originalInput","input","TaskManagerStore","taskUpdater","taskLogUpdater","constructor","params","context","task","taskLog","log","databaseLogs","getStatus","taskStatus","getTask","listChildTasks","definitionId","where","parentId","id","result","tasks","listTasks","sort","limit","items","updateTask","param","options","data","update","save","updateInput","updateOutput","values","output","getOutput","addInfoLog","message","type","INFO","createdOn","Date","toISOString","addErrorLog","console","error","Error","ERROR","isDirty","fetch","updateLog"],"sources":["TaskManagerStore.ts"],"sourcesContent":["import type {\n IListTaskParamsWhere,\n ITask,\n ITaskDataInput,\n ITaskLog,\n ITaskManagerStoreInfoLog,\n ITaskManagerStorePrivate,\n ITaskManagerStoreSetOutputOptions,\n ITaskManagerStoreUpdateTaskInputOptions,\n ITaskManagerStoreUpdateTaskOptions,\n ITasksContextObject,\n TaskDataStatus\n} from \"~/types.js\";\nimport { TaskLogItemType } from \"~/types.js\";\nimport type {\n ITaskManagerStoreAddLogOptions,\n ITaskManagerStoreErrorLog,\n ITaskManagerStoreUpdateTaskInputParam,\n ITaskManagerStoreUpdateTaskParams\n} from \"./abstractions/index.js\";\n/**\n * Package deep-equal does not have types.\n */\nimport deepEqual from \"deep-equal\";\nimport { getObjectProperties } from \"~/utils/getObjectProperties.js\";\nimport { ObjectUpdater } from \"~/utils/ObjectUpdater.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nconst getInput = <T extends ITaskDataInput = ITaskDataInput>(\n originalInput: T,\n input: ITaskManagerStoreUpdateTaskInputParam<T>\n): T => {\n if (typeof input === \"function\") {\n return input(originalInput);\n }\n return {\n ...originalInput,\n ...input\n };\n};\n\nexport interface TaskManagerStoreContext {\n tasks: Pick<ITasksContextObject, \"updateTask\" | \"updateLog\" | \"listTasks\">;\n}\n\nexport interface ITaskManagerStoreParams {\n context: TaskManagerStoreContext;\n task: ITask;\n log: ITaskLog;\n databaseLogs: boolean;\n}\n\nexport class TaskManagerStore<\n T extends ITaskDataInput = ITaskDataInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements ITaskManagerStorePrivate<T, O> {\n private readonly context: TaskManagerStoreContext;\n private task: ITask<T, O>;\n private taskLog: ITaskLog;\n private readonly databaseLogs: boolean;\n\n private readonly taskUpdater = new ObjectUpdater<ITask<T, O>>();\n private readonly taskLogUpdater = new ObjectUpdater<ITaskLog>();\n\n public constructor(params: ITaskManagerStoreParams) {\n this.context = params.context;\n this.task = params.task as ITask<T, O>;\n this.taskLog = params.log;\n this.databaseLogs = params.databaseLogs === true;\n }\n\n public getStatus(): TaskDataStatus {\n return this.task.taskStatus;\n }\n\n public getTask(): ITask<T, O> {\n return this.task as ITask<T, O>;\n }\n\n public async listChildTasks<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(definitionId?: string): Promise<ITask<I, O>[]> {\n const where: IListTaskParamsWhere = {\n parentId: this.task.id\n };\n if (definitionId) {\n where.definitionId = definitionId;\n }\n const result = await this.context.tasks.listTasks<I, O>({\n where,\n sort: [\"createdOn_ASC\"],\n limit: 1000000\n });\n return result.items;\n }\n\n public async updateTask(\n param: ITaskManagerStoreUpdateTaskParams<T, O>,\n options?: ITaskManagerStoreUpdateTaskOptions\n ): Promise<void> {\n const data = typeof param === \"function\" ? param(this.task) : param;\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(data, this.task)) {\n return;\n }\n\n this.taskUpdater.update(data);\n\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async updateInput(\n param: ITaskManagerStoreUpdateTaskInputParam<T>,\n options?: ITaskManagerStoreUpdateTaskInputOptions\n ): Promise<void> {\n const input = getInput<T>(this.task.input, param);\n\n /**\n * No need to update if nothing changed.\n */\n if (deepEqual(input, this.task.input)) {\n return;\n }\n this.taskUpdater.update({\n input: input as T\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getInput(): T {\n return this.task.input as T;\n }\n\n public async updateOutput(\n values: Partial<O>,\n options: ITaskManagerStoreSetOutputOptions = {}\n ): Promise<void> {\n this.taskUpdater.update({\n output: values as O\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public getOutput(): O {\n return this.task.output as O;\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addInfoLog(\n log: ITaskManagerStoreInfoLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (!this.databaseLogs) {\n return;\n }\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n data: log.data,\n type: TaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n\n await this.save();\n }\n /**\n * Currently the methods throws an error if something goes wrong during the database update.\n * TODO: Maybe we should wrap it into try/catch and return error if any?\n */\n public async addErrorLog(\n log: ITaskManagerStoreErrorLog,\n options?: ITaskManagerStoreAddLogOptions\n ): Promise<void> {\n if (!this.databaseLogs) {\n return;\n }\n /**\n * Let's log the error to the console as well.\n */\n console.error(log.error);\n /**\n * Then update the log object.\n */\n this.taskLogUpdater.update({\n items: [\n {\n message: log.message,\n error: log.error instanceof Error ? getObjectProperties(log.error) : log.error,\n type: TaskLogItemType.ERROR,\n createdOn: new Date().toISOString()\n }\n ]\n });\n if (options?.save === false) {\n return;\n }\n await this.save();\n }\n\n public async save(): Promise<void> {\n /**\n * Update both task and the log, if anything to update.\n */\n if (this.taskUpdater.isDirty()) {\n this.task = await this.context.tasks.updateTask<T, O>(\n this.task.id,\n this.taskUpdater.fetch()\n );\n }\n if (!this.databaseLogs) {\n return;\n }\n if (this.taskLogUpdater.isDirty()) {\n this.taskLog = await this.context.tasks.updateLog(\n this.taskLog.id,\n this.taskLogUpdater.fetch()\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/types.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/in
|
|
|
7
7
|
import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
|
|
8
8
|
import { BaseError, Result } from "@webiny/feature/api";
|
|
9
9
|
import type { IdInterfaceGenerator, NumericInterfaceGenerator } from "@webiny/api";
|
|
10
|
+
import "./features/TaskController/augmentation.js";
|
|
10
11
|
export * from "./handler/types.js";
|
|
11
12
|
export * from "./response/abstractions/index.js";
|
|
12
13
|
export * from "./runner/abstractions/index.js";
|
package/types.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// TODO had to import for augmentation to work, but is there a better way to do this?
|
|
2
|
+
import "./features/TaskController/augmentation.js";
|
|
1
3
|
export * from "./handler/types.js";
|
|
2
4
|
export * from "./response/abstractions/index.js";
|
|
3
5
|
export * from "./runner/abstractions/index.js";
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TaskLogItemType","TaskDataStatus"],"sources":["types.ts"],"sourcesContent":["import type {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IResponseError } from \"~/response/abstractions/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IStepFunctionServiceFetchResult } from \"~/service/StepFunctionServicePlugin.js\";\nimport type { SecurityPermission } from \"@webiny/api-core/types/security.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { BaseError, Result } from \"@webiny/feature/api\";\nimport type { IdInterfaceGenerator, NumericInterfaceGenerator } from \"@webiny/api\";\n\nexport * from \"./handler/types.js\";\nexport * from \"./response/abstractions/index.js\";\nexport * from \"./runner/abstractions/index.js\";\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum TaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: TaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: TaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: TaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport type IGetTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> {\n items: ITask<T, O>[];\n meta: CmsEntryMeta;\n}\n\nexport interface IListTaskLogsResponse {\n items: ITaskLog[];\n meta: CmsEntryMeta;\n}\n\nexport type ICreateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParamsWhere\n extends
|
|
1
|
+
{"version":3,"names":["TaskLogItemType","TaskDataStatus"],"sources":["types.ts"],"sourcesContent":["import type {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IResponseError } from \"~/response/abstractions/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IStepFunctionServiceFetchResult } from \"~/service/StepFunctionServicePlugin.js\";\nimport type { SecurityPermission } from \"@webiny/api-core/types/security.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { BaseError, Result } from \"@webiny/feature/api\";\nimport type { IdInterfaceGenerator, NumericInterfaceGenerator } from \"@webiny/api\";\n// TODO had to import for augmentation to work, but is there a better way to do this?\nimport \"./features/TaskController/augmentation.js\";\n\nexport * from \"./handler/types.js\";\nexport * from \"./response/abstractions/index.js\";\nexport * from \"./runner/abstractions/index.js\";\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum TaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: TaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: TaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: TaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport type IGetTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> {\n items: ITask<T, O>[];\n meta: CmsEntryMeta;\n}\n\nexport interface IListTaskLogsResponse {\n items: ITaskLog[];\n meta: CmsEntryMeta;\n}\n\nexport type ICreateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"parentId\">,\n IdInterfaceGenerator<\"definitionId\">,\n IdInterfaceGenerator<\"taskStatus\"> {\n //\n}\n\nexport interface IListTaskParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: IListTaskParamsWhere;\n}\n\nexport interface IListTaskLogParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"task\">,\n NumericInterfaceGenerator<\"iteration\"> {}\n\nexport interface IListTaskLogParams extends Omit<\n CmsEntryListParams,\n \"fields\" | \"search\" | \"where\"\n> {\n where?: IListTaskLogParamsWhere;\n}\n\nexport interface ITaskCreateData<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {\n definitionId: string;\n name: string;\n input: T;\n parentId?: string;\n}\n\nexport interface ITaskUpdateData<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> {\n name?: string;\n input?: I;\n output?: O;\n taskStatus?: TaskDataStatus;\n executionName?: string;\n startedOn?: string;\n finishedOn?: string;\n eventResponse?: GenericRecord;\n iterations?: number;\n}\n\nexport interface ITaskLogCreateInput {\n executionName: string;\n iteration: number;\n}\n\nexport interface ITaskLogUpdateInput {\n items?: ITaskLogItem[];\n}\n\nexport interface ITasksContextCrudObject {\n /**\n * Models\n */\n getTaskModel(): Promise<CmsModel>;\n getLogModel(): Promise<CmsModel>;\n /**\n * Tasks\n */\n getTask<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string\n ): Promise<IGetTaskResponse<T, O> | null>;\n listTasks<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: IListTaskParams\n ): Promise<IListTasksResponse<T, O>>;\n createTask<T extends TaskService.TaskInput = TaskService.TaskInput>(\n task: ITaskCreateData<T>\n ): Promise<ICreateTaskResponse<T>>;\n updateTask<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string,\n data: Partial<ITaskUpdateData<T, O>>\n ): Promise<IUpdateTaskResponse<T, O>>;\n deleteTask(id: string): Promise<IDeleteTaskResponse>;\n /**\n * Logs\n */\n createLog(task: Pick<ITask, \"id\">, data: ITaskLogCreateInput): Promise<ITaskLog>;\n updateLog(id: string, data: ITaskLogUpdateInput): Promise<ITaskLog>;\n deleteLog(id: string): Promise<boolean>;\n getLog(id: string): Promise<ITaskLog | null>;\n getLatestLog(taskId: string): Promise<ITaskLog>;\n listLogs(params: IListTaskLogParams): Promise<IListTaskLogsResponse>;\n}\n\nexport interface ITasksContextDefinitionObject {\n getDefinition: <\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n id: string\n ) => TaskDefinition.Runnable<I, O> | null;\n listDefinitions: () => TaskDefinition.Interface[];\n}\n\nexport interface ITaskTriggerParams<I = ITaskDataInput> {\n parent?: Pick<ITask, \"id\">;\n definition: string;\n name?: string;\n input?: I;\n delay?: number;\n}\n\nexport interface ITaskAbortParams {\n id: string;\n message?: string;\n}\n\nexport interface ITasksContextServiceObject {\n trigger: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskTriggerParams<T>\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n abort: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskAbortParams\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n fetchServiceInfo: (\n input: ITask<any, any> | string\n ) => Promise<Result<IStepFunctionServiceFetchResult, BaseError>>;\n}\n\nexport interface ITasksContextObject\n extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {}\n\nexport interface Context extends BaseContext {\n tasks: ITasksContextObject;\n}\n\nexport interface TaskPermission extends SecurityPermission {\n name: \"task\";\n rwd?: string;\n}\n\nexport type ITask<\n I extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = TaskService.Task<I, O>;\n"],"mappings":"AAcA;AACA;AAEA;AACA;AACA;AAIA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAwC3B,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|