@webiny/tasks 5.40.0-beta.2 → 5.40.0-beta.3
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/context.js.map +1 -1
- package/crud/EventBridgeEventTransport.js.map +1 -1
- package/crud/crud.tasks.js.map +1 -1
- package/crud/definition.tasks.js.map +1 -1
- package/crud/model.js +4 -8
- package/crud/model.js.map +1 -1
- package/crud/trigger.tasks.js.map +1 -1
- package/crud/where.js.map +1 -1
- package/graphql/checkPermissions.js.map +1 -1
- package/graphql/index.js.map +1 -1
- package/graphql/utils.js.map +1 -1
- package/handler/index.js.map +1 -1
- package/handler/register.js.map +1 -1
- package/handler/types.js.map +1 -1
- package/index.js.map +1 -1
- package/package.json +36 -26
- package/response/DatabaseResponse.js.map +1 -1
- package/response/Response.js.map +1 -1
- package/response/ResponseAbortedResult.js.map +1 -1
- package/response/ResponseContinueResult.js.map +1 -1
- package/response/ResponseDoneResult.js.map +1 -1
- package/response/ResponseErrorResult.js.map +1 -1
- package/response/TaskResponse.js.map +1 -1
- package/response/abstractions/Response.js.map +1 -1
- package/response/abstractions/ResponseAbortedResult.js.map +1 -1
- package/response/abstractions/ResponseBaseResult.js.map +1 -1
- package/response/abstractions/ResponseContinueResult.js.map +1 -1
- package/response/abstractions/ResponseDoneResult.js.map +1 -1
- package/response/abstractions/ResponseErrorResult.js.map +1 -1
- package/response/abstractions/TaskResponse.d.ts +1 -1
- package/response/abstractions/TaskResponse.js.map +1 -1
- package/response/abstractions/index.js.map +1 -1
- package/response/index.js.map +1 -1
- package/runner/TaskControl.js +0 -1
- package/runner/TaskControl.js.map +1 -1
- package/runner/TaskEventValidation.js.map +1 -1
- package/runner/TaskManager.js.map +1 -1
- package/runner/TaskManagerStore.js +3 -1
- package/runner/TaskManagerStore.js.map +1 -1
- package/runner/TaskRunner.d.ts +1 -0
- package/runner/TaskRunner.js +15 -0
- package/runner/TaskRunner.js.map +1 -1
- package/runner/abstractions/TaskControl.js.map +1 -1
- package/runner/abstractions/TaskEventValidation.js.map +1 -1
- package/runner/abstractions/TaskManager.js.map +1 -1
- package/runner/abstractions/TaskManagerStore.js.map +1 -1
- package/runner/abstractions/TaskRunner.js.map +1 -1
- package/runner/abstractions/index.js.map +1 -1
- package/runner/index.js.map +1 -1
- package/task/index.js.map +1 -1
- package/task/input.js.map +1 -1
- package/task/plugin.js.map +1 -1
- package/tasks/testingRunTask.js.map +1 -1
- package/timer/CustomTimer.js.map +1 -1
- package/timer/Timer.js.map +1 -1
- package/timer/abstractions/ITimer.js.map +1 -1
- package/timer/factory.js.map +1 -1
- package/timer/index.js.map +1 -1
- package/types.js +3 -6
- package/types.js.map +1 -1
- package/utils/ObjectUpdater.js.map +1 -1
- package/utils/getErrorProperties.js.map +1 -1
- package/utils/getObjectProperties.js.map +1 -1
package/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_api","require","_model","_definition","_trigger","_crud","_testingRunTask","createConfig","config","eventBusName","String","process","env","EVENT_BUS","createTasksCrud","input","plugin","ContextPlugin","context","tasks","createDefinitionCrud","createTaskCrud","createTriggerTasksCrud","name","createTasksContext","createTaskModel","createBackgroundTaskContext","createTestingRunTask","exports"],"sources":["context.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { Context, ITaskConfig, ITasksContextConfigObject } from \"~/types\";\nimport { createTaskModel } from \"./crud/model\";\nimport { createDefinitionCrud } from \"./crud/definition.tasks\";\nimport { createTriggerTasksCrud } from \"~/crud/trigger.tasks\";\nimport { createTaskCrud } from \"./crud/crud.tasks\";\nimport { createTestingRunTask } from \"~/tasks/testingRunTask\";\n\nconst createConfig = (config?: ITaskConfig): ITasksContextConfigObject => {\n return {\n config: {\n eventBusName: config?.eventBusName || String(process.env.EVENT_BUS)\n }\n };\n};\n\nconst createTasksCrud = (input?: ITaskConfig) => {\n const config = createConfig(input);\n const plugin = new ContextPlugin<Context>(async context => {\n context.tasks = {\n ...config,\n ...createDefinitionCrud(context),\n ...createTaskCrud(context),\n ...createTriggerTasksCrud(context, config.config)\n };\n });\n\n plugin.name = \"tasks.context\";\n\n return plugin;\n};\n\nconst createTasksContext = (input?: ITaskConfig): Plugin[] => {\n return [...createTaskModel(), createTasksCrud(input)];\n};\n\nexport const createBackgroundTaskContext = (config?: ITaskConfig): Plugin[] => {\n return [createTestingRunTask(), ...createTasksContext(config)];\n};\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,MAAMM,YAAY,GAAIC,MAAoB,IAAgC;EACtE,OAAO;IACHA,MAAM,EAAE;MACJC,YAAY,EAAED,MAAM,EAAEC,YAAY,IAAIC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,SAAS;IACtE;EACJ,CAAC;AACL,CAAC;AAED,MAAMC,eAAe,GAAIC,KAAmB,IAAK;EAC7C,MAAMP,MAAM,GAAGD,YAAY,CAACQ,KAAK,CAAC;EAClC,MAAMC,MAAM,GAAG,IAAIC,kBAAa,CAAU,MAAMC,OAAO,IAAI;IACvDA,OAAO,CAACC,KAAK,GAAG;MACZ,GAAGX,MAAM;MACT,GAAG,IAAAY,gCAAoB,EAACF,OAAO,CAAC;MAChC,GAAG,IAAAG,oBAAc,EAACH,OAAO,CAAC;MAC1B,GAAG,IAAAI,+BAAsB,EAACJ,OAAO,EAAEV,MAAM,CAACA,MAAM;IACpD,CAAC;EACL,CAAC,CAAC;EAEFQ,MAAM,CAACO,IAAI,GAAG,eAAe;EAE7B,OAAOP,MAAM;AACjB,CAAC;AAED,MAAMQ,kBAAkB,GAAIT,KAAmB,IAAe;EAC1D,OAAO,CAAC,GAAG,IAAAU,sBAAe,EAAC,CAAC,EAAEX,eAAe,CAACC,KAAK,CAAC,CAAC;AACzD,CAAC;AAEM,MAAMW,2BAA2B,GAAIlB,MAAoB,IAAe;EAC3E,OAAO,CAAC,IAAAmB,oCAAoB,EAAC,CAAC,EAAE,GAAGH,kBAAkB,CAAChB,MAAM,CAAC,CAAC;AAClE,CAAC;AAACoB,OAAA,CAAAF,2BAAA,GAAAA,2BAAA"}
|
|
1
|
+
{"version":3,"names":["_api","require","_model","_definition","_trigger","_crud","_testingRunTask","createConfig","config","eventBusName","String","process","env","EVENT_BUS","createTasksCrud","input","plugin","ContextPlugin","context","tasks","createDefinitionCrud","createTaskCrud","createTriggerTasksCrud","name","createTasksContext","createTaskModel","createBackgroundTaskContext","createTestingRunTask","exports"],"sources":["context.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { Context, ITaskConfig, ITasksContextConfigObject } from \"~/types\";\nimport { createTaskModel } from \"./crud/model\";\nimport { createDefinitionCrud } from \"./crud/definition.tasks\";\nimport { createTriggerTasksCrud } from \"~/crud/trigger.tasks\";\nimport { createTaskCrud } from \"./crud/crud.tasks\";\nimport { createTestingRunTask } from \"~/tasks/testingRunTask\";\n\nconst createConfig = (config?: ITaskConfig): ITasksContextConfigObject => {\n return {\n config: {\n eventBusName: config?.eventBusName || String(process.env.EVENT_BUS)\n }\n };\n};\n\nconst createTasksCrud = (input?: ITaskConfig) => {\n const config = createConfig(input);\n const plugin = new ContextPlugin<Context>(async context => {\n context.tasks = {\n ...config,\n ...createDefinitionCrud(context),\n ...createTaskCrud(context),\n ...createTriggerTasksCrud(context, config.config)\n };\n });\n\n plugin.name = \"tasks.context\";\n\n return plugin;\n};\n\nconst createTasksContext = (input?: ITaskConfig): Plugin[] => {\n return [...createTaskModel(), createTasksCrud(input)];\n};\n\nexport const createBackgroundTaskContext = (config?: ITaskConfig): Plugin[] => {\n return [createTestingRunTask(), ...createTasksContext(config)];\n};\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,MAAMM,YAAY,GAAIC,MAAoB,IAAgC;EACtE,OAAO;IACHA,MAAM,EAAE;MACJC,YAAY,EAAED,MAAM,EAAEC,YAAY,IAAIC,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,SAAS;IACtE;EACJ,CAAC;AACL,CAAC;AAED,MAAMC,eAAe,GAAIC,KAAmB,IAAK;EAC7C,MAAMP,MAAM,GAAGD,YAAY,CAACQ,KAAK,CAAC;EAClC,MAAMC,MAAM,GAAG,IAAIC,kBAAa,CAAU,MAAMC,OAAO,IAAI;IACvDA,OAAO,CAACC,KAAK,GAAG;MACZ,GAAGX,MAAM;MACT,GAAG,IAAAY,gCAAoB,EAACF,OAAO,CAAC;MAChC,GAAG,IAAAG,oBAAc,EAACH,OAAO,CAAC;MAC1B,GAAG,IAAAI,+BAAsB,EAACJ,OAAO,EAAEV,MAAM,CAACA,MAAM;IACpD,CAAC;EACL,CAAC,CAAC;EAEFQ,MAAM,CAACO,IAAI,GAAG,eAAe;EAE7B,OAAOP,MAAM;AACjB,CAAC;AAED,MAAMQ,kBAAkB,GAAIT,KAAmB,IAAe;EAC1D,OAAO,CAAC,GAAG,IAAAU,sBAAe,EAAC,CAAC,EAAEX,eAAe,CAACC,KAAK,CAAC,CAAC;AACzD,CAAC;AAEM,MAAMW,2BAA2B,GAAIlB,MAAoB,IAAe;EAC3E,OAAO,CAAC,IAAAmB,oCAAoB,EAAC,CAAC,EAAE,GAAGH,kBAAkB,CAAChB,MAAM,CAAC,CAAC;AAClE,CAAC;AAACoB,OAAA,CAAAF,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_clientEventbridge","EventBridgeEventTransport","constructor","params","client","EventBridgeClient","region","process","env","AWS_REGION","eventBusName","config","getTenant","getLocale","send","task","delay","event","webinyTaskId","id","webinyTaskDefinitionId","definitionId","tenant","locale","cmd","PutEventsCommand","Entries","Source","EventBusName","DetailType","Detail","JSON","stringify","ex","WebinyError","message","code","data","exports"],"sources":["EventBridgeEventTransport.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n EventBridgeClient,\n PutEventsCommand,\n PutEventsCommandOutput\n} from \"@webiny/aws-sdk/client-eventbridge\";\nimport { ITask, ITaskConfig } from \"~/types\";\nimport { ITaskEventInput } from \"~/handler/types\";\n\nexport { PutEventsCommandOutput };\n\nexport interface IEventBridgeEventTransportParams {\n config: ITaskConfig;\n getTenant: () => string;\n getLocale: () => string;\n}\n\nexport class EventBridgeEventTransport {\n private readonly client: EventBridgeClient;\n private readonly eventBusName: string;\n private readonly getTenant: () => string;\n private readonly getLocale: () => string;\n\n public constructor(params: IEventBridgeEventTransportParams) {\n this.client = new EventBridgeClient({\n region: process.env.AWS_REGION\n });\n this.eventBusName = params.config.eventBusName;\n this.getTenant = params.getTenant;\n this.getLocale = params.getLocale;\n }\n\n public async send(\n task: Pick<ITask, \"id\" | \"definitionId\">,\n delay: number\n ): Promise<PutEventsCommandOutput> {\n /**\n * The ITaskEvent is what our handler expect to get.\n * Endpoint and stateMachineId are added by the step function.\n */\n const event: ITaskEventInput = {\n webinyTaskId: task.id,\n webinyTaskDefinitionId: task.definitionId,\n tenant: this.getTenant(),\n locale: this.getLocale(),\n delay\n };\n\n const cmd = new PutEventsCommand({\n Entries: [\n {\n Source: \"webiny-api-tasks\",\n EventBusName: this.eventBusName,\n DetailType: \"WebinyBackgroundTask\",\n Detail: JSON.stringify(event)\n }\n ]\n });\n try {\n return await this.client.send(cmd);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not trigger task via Event Bridge!\",\n ex.code || \"TRIGGER_TASK_ERROR\",\n {\n event,\n ...(ex.data || {})\n }\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAgBO,MAAME,yBAAyB,CAAC;EAM5BC,WAAWA,CAACC,MAAwC,EAAE;IACzD,IAAI,CAACC,MAAM,GAAG,IAAIC,oCAAiB,CAAC;MAChCC,MAAM,EAAEC,OAAO,CAACC,GAAG,CAACC;IACxB,CAAC,CAAC;IACF,IAAI,CAACC,YAAY,GAAGP,MAAM,CAACQ,MAAM,CAACD,YAAY;IAC9C,IAAI,CAACE,SAAS,GAAGT,MAAM,CAACS,SAAS;IACjC,IAAI,CAACC,SAAS,GAAGV,MAAM,CAACU,SAAS;EACrC;EAEA,MAAaC,IAAIA,CACbC,IAAwC,EACxCC,KAAa,EACkB;IAC/B;AACR;AACA;AACA;IACQ,MAAMC,KAAsB,GAAG;MAC3BC,YAAY,EAAEH,IAAI,CAACI,EAAE;MACrBC,sBAAsB,EAAEL,IAAI,CAACM,YAAY;MACzCC,MAAM,EAAE,IAAI,CAACV,SAAS,CAAC,CAAC;MACxBW,MAAM,EAAE,IAAI,CAACV,SAAS,CAAC,CAAC;MACxBG;IACJ,CAAC;IAED,MAAMQ,GAAG,GAAG,IAAIC,mCAAgB,CAAC;MAC7BC,OAAO,EAAE,CACL;QACIC,MAAM,EAAE,kBAAkB;QAC1BC,YAAY,EAAE,IAAI,CAAClB,YAAY;QAC/BmB,UAAU,EAAE,sBAAsB;QAClCC,MAAM,EAAEC,IAAI,CAACC,SAAS,CAACf,KAAK;MAChC,CAAC;IAET,CAAC,CAAC;IACF,IAAI;MACA,OAAO,MAAM,IAAI,CAACb,MAAM,CAACU,IAAI,CAACU,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOS,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,0CAA0C,EACxDF,EAAE,CAACG,IAAI,IAAI,oBAAoB,EAC/B;QACInB,KAAK;QACL,IAAIgB,EAAE,CAACI,IAAI,IAAI,CAAC,CAAC;MACrB,CACJ,CAAC;IACL;EACJ;AACJ;AAACC,OAAA,CAAArC,yBAAA,GAAAA,yBAAA"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_clientEventbridge","EventBridgeEventTransport","constructor","params","client","EventBridgeClient","region","process","env","AWS_REGION","eventBusName","config","getTenant","getLocale","send","task","delay","event","webinyTaskId","id","webinyTaskDefinitionId","definitionId","tenant","locale","cmd","PutEventsCommand","Entries","Source","EventBusName","DetailType","Detail","JSON","stringify","ex","WebinyError","message","code","data","exports"],"sources":["EventBridgeEventTransport.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n EventBridgeClient,\n PutEventsCommand,\n PutEventsCommandOutput\n} from \"@webiny/aws-sdk/client-eventbridge\";\nimport { ITask, ITaskConfig } from \"~/types\";\nimport { ITaskEventInput } from \"~/handler/types\";\n\nexport { PutEventsCommandOutput };\n\nexport interface IEventBridgeEventTransportParams {\n config: ITaskConfig;\n getTenant: () => string;\n getLocale: () => string;\n}\n\nexport class EventBridgeEventTransport {\n private readonly client: EventBridgeClient;\n private readonly eventBusName: string;\n private readonly getTenant: () => string;\n private readonly getLocale: () => string;\n\n public constructor(params: IEventBridgeEventTransportParams) {\n this.client = new EventBridgeClient({\n region: process.env.AWS_REGION\n });\n this.eventBusName = params.config.eventBusName;\n this.getTenant = params.getTenant;\n this.getLocale = params.getLocale;\n }\n\n public async send(\n task: Pick<ITask, \"id\" | \"definitionId\">,\n delay: number\n ): Promise<PutEventsCommandOutput> {\n /**\n * The ITaskEvent is what our handler expect to get.\n * Endpoint and stateMachineId are added by the step function.\n */\n const event: ITaskEventInput = {\n webinyTaskId: task.id,\n webinyTaskDefinitionId: task.definitionId,\n tenant: this.getTenant(),\n locale: this.getLocale(),\n delay\n };\n\n const cmd = new PutEventsCommand({\n Entries: [\n {\n Source: \"webiny-api-tasks\",\n EventBusName: this.eventBusName,\n DetailType: \"WebinyBackgroundTask\",\n Detail: JSON.stringify(event)\n }\n ]\n });\n try {\n return await this.client.send(cmd);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not trigger task via Event Bridge!\",\n ex.code || \"TRIGGER_TASK_ERROR\",\n {\n event,\n ...(ex.data || {})\n }\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAgBO,MAAME,yBAAyB,CAAC;EAM5BC,WAAWA,CAACC,MAAwC,EAAE;IACzD,IAAI,CAACC,MAAM,GAAG,IAAIC,oCAAiB,CAAC;MAChCC,MAAM,EAAEC,OAAO,CAACC,GAAG,CAACC;IACxB,CAAC,CAAC;IACF,IAAI,CAACC,YAAY,GAAGP,MAAM,CAACQ,MAAM,CAACD,YAAY;IAC9C,IAAI,CAACE,SAAS,GAAGT,MAAM,CAACS,SAAS;IACjC,IAAI,CAACC,SAAS,GAAGV,MAAM,CAACU,SAAS;EACrC;EAEA,MAAaC,IAAIA,CACbC,IAAwC,EACxCC,KAAa,EACkB;IAC/B;AACR;AACA;AACA;IACQ,MAAMC,KAAsB,GAAG;MAC3BC,YAAY,EAAEH,IAAI,CAACI,EAAE;MACrBC,sBAAsB,EAAEL,IAAI,CAACM,YAAY;MACzCC,MAAM,EAAE,IAAI,CAACV,SAAS,CAAC,CAAC;MACxBW,MAAM,EAAE,IAAI,CAACV,SAAS,CAAC,CAAC;MACxBG;IACJ,CAAC;IAED,MAAMQ,GAAG,GAAG,IAAIC,mCAAgB,CAAC;MAC7BC,OAAO,EAAE,CACL;QACIC,MAAM,EAAE,kBAAkB;QAC1BC,YAAY,EAAE,IAAI,CAAClB,YAAY;QAC/BmB,UAAU,EAAE,sBAAsB;QAClCC,MAAM,EAAEC,IAAI,CAACC,SAAS,CAACf,KAAK;MAChC,CAAC;IAET,CAAC,CAAC;IACF,IAAI;MACA,OAAO,MAAM,IAAI,CAACb,MAAM,CAACU,IAAI,CAACU,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOS,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,0CAA0C,EACxDF,EAAE,CAACG,IAAI,IAAI,oBAAoB,EAC/B;QACInB,KAAK;QACL,IAAIgB,EAAE,CAACI,IAAI,IAAI,CAAC,CAAC;MACrB,CACJ,CAAC;IACL;EACJ;AACJ;AAACC,OAAA,CAAArC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
package/crud/crud.tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_types","_model","_handlerGraphql","_pubsub","_where","_utils","createRevisionId","id","entryId","parseIdentifier","convertToTask","entry","createdOn","savedOn","createdBy","name","values","definitionId","input","output","taskStatus","executionName","eventResponse","startedOn","finishedOn","iterations","parentId","convertToLog","task","iteration","items","createTaskCrud","context","onTaskBeforeCreate","createTopic","onTaskAfterCreate","onTaskBeforeUpdate","onTaskAfterUpdate","onTaskBeforeDelete","onTaskAfterDelete","getTaskModel","security","withoutAuthorization","model","cms","getModel","WEBINY_TASK_MODEL_ID","WebinyError","getLogModel","WEBINY_TASK_LOG_MODEL_ID","getTask","getEntryById","ex","NotFoundError","listTasks","params","meta","listLatestEntries","where","remapWhere","map","item","createTask","data","definition","tasks","getDefinition","createEntry","TaskDataStatus","PENDING","updateTask","updateEntry","Date","toISOString","deleteTask","deleteEntry","createLog","updateLog","deleteLog","getLog","getLatestLog","taskId","sort","limit","listLogs","exports"],"sources":["crud.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITask,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskLogCreateInput,\n ITaskLogUpdateInput,\n ITaskResponseDoneResultOutput,\n ITasksContextCrudObject,\n ITaskUpdateData,\n OnTaskAfterCreateTopicParams,\n OnTaskAfterDeleteTopicParams,\n OnTaskAfterUpdateTopicParams,\n OnTaskBeforeCreateTopicParams,\n OnTaskBeforeDeleteTopicParams,\n OnTaskBeforeUpdateTopicParams,\n TaskDataStatus\n} from \"~/types\";\nimport { WEBINY_TASK_LOG_MODEL_ID, WEBINY_TASK_MODEL_ID } from \"./model\";\nimport { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { remapWhere } from \"./where\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nconst createRevisionId = (id: string) => {\n const { id: entryId } = parseIdentifier(id);\n return `${entryId}#0001`;\n};\n\nconst convertToTask = <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n>(\n entry: CmsEntry<ITask<T, O>>\n): ITask<T, O> => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n name: entry.values.name,\n definitionId: entry.values.definitionId,\n input: entry.values.input,\n output: entry.values.output,\n taskStatus: entry.values.taskStatus,\n executionName: entry.values.executionName || \"\",\n eventResponse: entry.values.eventResponse,\n startedOn: entry.values.startedOn,\n finishedOn: entry.values.finishedOn,\n iterations: entry.values.iterations,\n parentId: entry.values.parentId\n };\n};\n\nconst convertToLog = (entry: CmsEntry<ITaskLog>): ITaskLog => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n executionName: entry.values.executionName,\n task: entry.values.task,\n iteration: entry.values.iteration,\n items: entry.values.items || []\n };\n};\n\nexport const createTaskCrud = (context: Context): ITasksContextCrudObject => {\n const onTaskBeforeCreate = createTopic<OnTaskBeforeCreateTopicParams>(\"tasks.onBeforeCreate\");\n const onTaskAfterCreate = createTopic<OnTaskAfterCreateTopicParams>(\"tasks.onAfterCreate\");\n const onTaskBeforeUpdate = createTopic<OnTaskBeforeUpdateTopicParams>(\"tasks.onBeforeUpdate\");\n const onTaskAfterUpdate = createTopic<OnTaskAfterUpdateTopicParams>(\"tasks.onAfterUpdate\");\n const onTaskBeforeDelete = createTopic<OnTaskBeforeDeleteTopicParams>(\"tasks.onBeforeDelete\");\n const onTaskAfterDelete = createTopic<OnTaskAfterDeleteTopicParams>(\"tasks.onAfterDelete\");\n\n const getTaskModel = async (): Promise<CmsModel> => {\n return await context.security.withoutAuthorization(async () => {\n const model = await context.cms.getModel(WEBINY_TASK_MODEL_ID);\n if (model) {\n return model;\n }\n throw new WebinyError(`There is no model \"${WEBINY_TASK_MODEL_ID}\".`);\n });\n };\n\n const getLogModel = async (): Promise<CmsModel> => {\n return await context.security.withoutAuthorization(async () => {\n const model = await context.cms.getModel(WEBINY_TASK_LOG_MODEL_ID);\n if (model) {\n return model;\n }\n throw new WebinyError(`There is no model \"${WEBINY_TASK_LOG_MODEL_ID}\".`);\n });\n };\n\n const getTask = async <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string\n ) => {\n let entry: CmsEntry;\n try {\n entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.getEntryById(model, createRevisionId(id));\n });\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n\n if (!entry) {\n return null;\n }\n\n return convertToTask(entry as unknown as CmsEntry<ITask<T, O>>);\n };\n\n const listTasks = async <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params?: IListTaskParams\n ) => {\n const [items, meta] = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.listLatestEntries<ITask<T, O>>(model, {\n ...params,\n where: remapWhere(params?.where)\n });\n });\n\n return {\n items: items.map(item => convertToTask<T, O>(item)),\n meta\n };\n };\n\n const createTask = async (data: ITaskCreateData) => {\n const definition = context.tasks.getDefinition(data.definitionId);\n if (!definition) {\n throw new WebinyError(`There is no task definition.`, \"TASK_DEFINITION_ERROR\", {\n id: data.definitionId\n });\n }\n\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.createEntry(model, {\n ...data,\n iterations: 0,\n taskStatus: TaskDataStatus.PENDING\n });\n });\n\n return convertToTask(entry as unknown as CmsEntry<ITask>);\n };\n\n const updateTask = async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string,\n data: ITaskUpdateData<T, O>\n ) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.updateEntry(model, createRevisionId(id), {\n ...data,\n savedOn: new Date().toISOString()\n });\n });\n return convertToTask<T, O>(entry as unknown as CmsEntry<ITask<T, O>>);\n };\n\n const deleteTask = async (id: string) => {\n return context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n await context.cms.deleteEntry(model, createRevisionId(id));\n return true;\n });\n };\n\n const createLog = async (task: Pick<ITask, \"id\">, data: ITaskLogCreateInput) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n\n return await context.cms.createEntry(model, {\n ...data,\n task: task.id\n });\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const updateLog = async (id: string, data: ITaskLogUpdateInput) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n\n return await context.cms.updateEntry(model, createRevisionId(id), data);\n });\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const deleteLog = async (id: string) => {\n return context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n await context.cms.deleteEntry(model, id);\n return true;\n });\n };\n\n const getLog = async (id: string): Promise<ITaskLog | null> => {\n try {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n return await context.cms.getEntryById(model, id);\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n };\n\n const getLatestLog = async (taskId: string): Promise<ITaskLog> => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n const [items] = await context.cms.listLatestEntries<ITaskLog>(model, {\n where: {\n task: taskId\n },\n sort: [\"createdOn_DESC\"],\n limit: 1\n });\n const [item] = items;\n if (!item) {\n throw new NotFoundError(`No existing latest log found for task \"${taskId}\".`);\n }\n return item;\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const listLogs = async (params: IListTaskLogParams) => {\n const [items, meta] = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n return await context.cms.listLatestEntries<ITaskLog>(model, {\n ...params,\n where: remapWhere(params.where)\n });\n });\n\n return {\n items: items.map(item => convertToLog(item)),\n meta\n };\n };\n\n return {\n onTaskBeforeCreate,\n onTaskAfterCreate,\n onTaskBeforeUpdate,\n onTaskAfterUpdate,\n onTaskBeforeDelete,\n onTaskAfterDelete,\n getTask,\n listTasks,\n createTask,\n updateTask,\n deleteTask,\n createLog,\n updateLog,\n deleteLog,\n getLog,\n listLogs,\n getLatestLog,\n getTaskModel,\n getLogModel\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_types","_model","_handlerGraphql","_pubsub","_where","_utils","createRevisionId","id","entryId","parseIdentifier","convertToTask","entry","createdOn","savedOn","createdBy","name","values","definitionId","input","output","taskStatus","executionName","eventResponse","startedOn","finishedOn","iterations","parentId","convertToLog","task","iteration","items","createTaskCrud","context","onTaskBeforeCreate","createTopic","onTaskAfterCreate","onTaskBeforeUpdate","onTaskAfterUpdate","onTaskBeforeDelete","onTaskAfterDelete","getTaskModel","security","withoutAuthorization","model","cms","getModel","WEBINY_TASK_MODEL_ID","WebinyError","getLogModel","WEBINY_TASK_LOG_MODEL_ID","getTask","getEntryById","ex","NotFoundError","listTasks","params","meta","listLatestEntries","where","remapWhere","map","item","createTask","data","definition","tasks","getDefinition","createEntry","TaskDataStatus","PENDING","updateTask","updateEntry","Date","toISOString","deleteTask","deleteEntry","createLog","updateLog","deleteLog","getLog","getLatestLog","taskId","sort","limit","listLogs","exports"],"sources":["crud.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITask,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskLogCreateInput,\n ITaskLogUpdateInput,\n ITaskResponseDoneResultOutput,\n ITasksContextCrudObject,\n ITaskUpdateData,\n OnTaskAfterCreateTopicParams,\n OnTaskAfterDeleteTopicParams,\n OnTaskAfterUpdateTopicParams,\n OnTaskBeforeCreateTopicParams,\n OnTaskBeforeDeleteTopicParams,\n OnTaskBeforeUpdateTopicParams,\n TaskDataStatus\n} from \"~/types\";\nimport { WEBINY_TASK_LOG_MODEL_ID, WEBINY_TASK_MODEL_ID } from \"./model\";\nimport { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { remapWhere } from \"./where\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nconst createRevisionId = (id: string) => {\n const { id: entryId } = parseIdentifier(id);\n return `${entryId}#0001`;\n};\n\nconst convertToTask = <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n>(\n entry: CmsEntry<ITask<T, O>>\n): ITask<T, O> => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n name: entry.values.name,\n definitionId: entry.values.definitionId,\n input: entry.values.input,\n output: entry.values.output,\n taskStatus: entry.values.taskStatus,\n executionName: entry.values.executionName || \"\",\n eventResponse: entry.values.eventResponse,\n startedOn: entry.values.startedOn,\n finishedOn: entry.values.finishedOn,\n iterations: entry.values.iterations,\n parentId: entry.values.parentId\n };\n};\n\nconst convertToLog = (entry: CmsEntry<ITaskLog>): ITaskLog => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n executionName: entry.values.executionName,\n task: entry.values.task,\n iteration: entry.values.iteration,\n items: entry.values.items || []\n };\n};\n\nexport const createTaskCrud = (context: Context): ITasksContextCrudObject => {\n const onTaskBeforeCreate = createTopic<OnTaskBeforeCreateTopicParams>(\"tasks.onBeforeCreate\");\n const onTaskAfterCreate = createTopic<OnTaskAfterCreateTopicParams>(\"tasks.onAfterCreate\");\n const onTaskBeforeUpdate = createTopic<OnTaskBeforeUpdateTopicParams>(\"tasks.onBeforeUpdate\");\n const onTaskAfterUpdate = createTopic<OnTaskAfterUpdateTopicParams>(\"tasks.onAfterUpdate\");\n const onTaskBeforeDelete = createTopic<OnTaskBeforeDeleteTopicParams>(\"tasks.onBeforeDelete\");\n const onTaskAfterDelete = createTopic<OnTaskAfterDeleteTopicParams>(\"tasks.onAfterDelete\");\n\n const getTaskModel = async (): Promise<CmsModel> => {\n return await context.security.withoutAuthorization(async () => {\n const model = await context.cms.getModel(WEBINY_TASK_MODEL_ID);\n if (model) {\n return model;\n }\n throw new WebinyError(`There is no model \"${WEBINY_TASK_MODEL_ID}\".`);\n });\n };\n\n const getLogModel = async (): Promise<CmsModel> => {\n return await context.security.withoutAuthorization(async () => {\n const model = await context.cms.getModel(WEBINY_TASK_LOG_MODEL_ID);\n if (model) {\n return model;\n }\n throw new WebinyError(`There is no model \"${WEBINY_TASK_LOG_MODEL_ID}\".`);\n });\n };\n\n const getTask = async <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string\n ) => {\n let entry: CmsEntry;\n try {\n entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.getEntryById(model, createRevisionId(id));\n });\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n\n if (!entry) {\n return null;\n }\n\n return convertToTask(entry as unknown as CmsEntry<ITask<T, O>>);\n };\n\n const listTasks = async <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params?: IListTaskParams\n ) => {\n const [items, meta] = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.listLatestEntries<ITask<T, O>>(model, {\n ...params,\n where: remapWhere(params?.where)\n });\n });\n\n return {\n items: items.map(item => convertToTask<T, O>(item)),\n meta\n };\n };\n\n const createTask = async (data: ITaskCreateData) => {\n const definition = context.tasks.getDefinition(data.definitionId);\n if (!definition) {\n throw new WebinyError(`There is no task definition.`, \"TASK_DEFINITION_ERROR\", {\n id: data.definitionId\n });\n }\n\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.createEntry(model, {\n ...data,\n iterations: 0,\n taskStatus: TaskDataStatus.PENDING\n });\n });\n\n return convertToTask(entry as unknown as CmsEntry<ITask>);\n };\n\n const updateTask = async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string,\n data: ITaskUpdateData<T, O>\n ) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.updateEntry(model, createRevisionId(id), {\n ...data,\n savedOn: new Date().toISOString()\n });\n });\n return convertToTask<T, O>(entry as unknown as CmsEntry<ITask<T, O>>);\n };\n\n const deleteTask = async (id: string) => {\n return context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n await context.cms.deleteEntry(model, createRevisionId(id));\n return true;\n });\n };\n\n const createLog = async (task: Pick<ITask, \"id\">, data: ITaskLogCreateInput) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n\n return await context.cms.createEntry(model, {\n ...data,\n task: task.id\n });\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const updateLog = async (id: string, data: ITaskLogUpdateInput) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n\n return await context.cms.updateEntry(model, createRevisionId(id), data);\n });\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const deleteLog = async (id: string) => {\n return context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n await context.cms.deleteEntry(model, id);\n return true;\n });\n };\n\n const getLog = async (id: string): Promise<ITaskLog | null> => {\n try {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n return await context.cms.getEntryById(model, id);\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n };\n\n const getLatestLog = async (taskId: string): Promise<ITaskLog> => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n const [items] = await context.cms.listLatestEntries<ITaskLog>(model, {\n where: {\n task: taskId\n },\n sort: [\"createdOn_DESC\"],\n limit: 1\n });\n const [item] = items;\n if (!item) {\n throw new NotFoundError(`No existing latest log found for task \"${taskId}\".`);\n }\n return item;\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const listLogs = async (params: IListTaskLogParams) => {\n const [items, meta] = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n return await context.cms.listLatestEntries<ITaskLog>(model, {\n ...params,\n where: remapWhere(params.where)\n });\n });\n\n return {\n items: items.map(item => convertToLog(item)),\n meta\n };\n };\n\n return {\n onTaskBeforeCreate,\n onTaskAfterCreate,\n onTaskBeforeUpdate,\n onTaskAfterUpdate,\n onTaskBeforeDelete,\n onTaskAfterDelete,\n getTask,\n listTasks,\n createTask,\n updateTask,\n deleteTask,\n createLog,\n updateLog,\n deleteLog,\n getLog,\n listLogs,\n getLatestLog,\n getTaskModel,\n getLogModel\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_task","require","getTaskDefinitionPlugins","context","plugins","byType","TaskDefinitionPlugin","type","createDefinitionCrud","getDefinition","id","plugin","getTask","listDefinitions","map","exports"],"sources":["definition.tasks.ts"],"sourcesContent":["import { Context, ITasksContextDefinitionObject } from \"~/types\";\nimport { TaskDefinitionPlugin } from \"~/task\";\n\nconst getTaskDefinitionPlugins = (context: Context) => {\n return context.plugins.byType<TaskDefinitionPlugin>(TaskDefinitionPlugin.type);\n};\n\nexport const createDefinitionCrud = (context: Context): ITasksContextDefinitionObject => {\n return {\n getDefinition: (id: string) => {\n const plugins = getTaskDefinitionPlugins(context);\n\n for (const plugin of plugins) {\n if (plugin.getTask().id === id) {\n return plugin.getTask();\n }\n }\n return null;\n },\n listDefinitions: () => {\n return getTaskDefinitionPlugins(context).map(plugin => plugin.getTask());\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,wBAAwB,GAAIC,OAAgB,IAAK;EACnD,OAAOA,OAAO,CAACC,OAAO,CAACC,MAAM,CAAuBC,0BAAoB,CAACC,IAAI,CAAC;AAClF,CAAC;AAEM,MAAMC,oBAAoB,GAAIL,OAAgB,IAAoC;EACrF,OAAO;IACHM,aAAa,EAAGC,EAAU,IAAK;MAC3B,MAAMN,OAAO,GAAGF,wBAAwB,CAACC,OAAO,CAAC;MAEjD,KAAK,MAAMQ,MAAM,IAAIP,OAAO,EAAE;QAC1B,IAAIO,MAAM,CAACC,OAAO,CAAC,CAAC,CAACF,EAAE,KAAKA,EAAE,EAAE;UAC5B,OAAOC,MAAM,CAACC,OAAO,CAAC,CAAC;QAC3B;MACJ;MACA,OAAO,IAAI;IACf,CAAC;IACDC,eAAe,EAAEA,CAAA,KAAM;MACnB,OAAOX,wBAAwB,CAACC,OAAO,CAAC,CAACW,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACC,OAAO,CAAC,CAAC,CAAC;IAC5E;EACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAP,oBAAA,GAAAA,oBAAA"}
|
|
1
|
+
{"version":3,"names":["_task","require","getTaskDefinitionPlugins","context","plugins","byType","TaskDefinitionPlugin","type","createDefinitionCrud","getDefinition","id","plugin","getTask","listDefinitions","map","exports"],"sources":["definition.tasks.ts"],"sourcesContent":["import { Context, ITasksContextDefinitionObject } from \"~/types\";\nimport { TaskDefinitionPlugin } from \"~/task\";\n\nconst getTaskDefinitionPlugins = (context: Context) => {\n return context.plugins.byType<TaskDefinitionPlugin>(TaskDefinitionPlugin.type);\n};\n\nexport const createDefinitionCrud = (context: Context): ITasksContextDefinitionObject => {\n return {\n getDefinition: (id: string) => {\n const plugins = getTaskDefinitionPlugins(context);\n\n for (const plugin of plugins) {\n if (plugin.getTask().id === id) {\n return plugin.getTask();\n }\n }\n return null;\n },\n listDefinitions: () => {\n return getTaskDefinitionPlugins(context).map(plugin => plugin.getTask());\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,wBAAwB,GAAIC,OAAgB,IAAK;EACnD,OAAOA,OAAO,CAACC,OAAO,CAACC,MAAM,CAAuBC,0BAAoB,CAACC,IAAI,CAAC;AAClF,CAAC;AAEM,MAAMC,oBAAoB,GAAIL,OAAgB,IAAoC;EACrF,OAAO;IACHM,aAAa,EAAGC,EAAU,IAAK;MAC3B,MAAMN,OAAO,GAAGF,wBAAwB,CAACC,OAAO,CAAC;MAEjD,KAAK,MAAMQ,MAAM,IAAIP,OAAO,EAAE;QAC1B,IAAIO,MAAM,CAACC,OAAO,CAAC,CAAC,CAACF,EAAE,KAAKA,EAAE,EAAE;UAC5B,OAAOC,MAAM,CAACC,OAAO,CAAC,CAAC;QAC3B;MACJ;MACA,OAAO,IAAI;IACf,CAAC;IACDC,eAAe,EAAEA,CAAA,KAAM;MACnB,OAAOX,wBAAwB,CAACC,OAAO,CAAC,CAACW,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACC,OAAO,CAAC,CAAC,CAAC;IAC5E;EACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAP,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
package/crud/model.js
CHANGED
|
@@ -6,10 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.taskModel = exports.taskLogModel = exports.createTaskModel = exports.WEBINY_TASK_MODEL_ID = exports.WEBINY_TASK_LOG_MODEL_ID = void 0;
|
|
7
7
|
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
8
8
|
var _types = require("../types");
|
|
9
|
-
const WEBINY_TASK_MODEL_ID = "webinyTask";
|
|
10
|
-
exports.
|
|
11
|
-
const WEBINY_TASK_LOG_MODEL_ID = "webinyTaskLog";
|
|
12
|
-
exports.WEBINY_TASK_LOG_MODEL_ID = WEBINY_TASK_LOG_MODEL_ID;
|
|
9
|
+
const WEBINY_TASK_MODEL_ID = exports.WEBINY_TASK_MODEL_ID = "webinyTask";
|
|
10
|
+
const WEBINY_TASK_LOG_MODEL_ID = exports.WEBINY_TASK_LOG_MODEL_ID = "webinyTaskLog";
|
|
13
11
|
const taskLogModelPlugin = (0, _apiHeadlessCms.createCmsModel)((0, _apiHeadlessCms.createPrivateModel)({
|
|
14
12
|
name: "Webiny Task Log",
|
|
15
13
|
modelId: WEBINY_TASK_LOG_MODEL_ID,
|
|
@@ -208,10 +206,8 @@ const taskModelPlugin = (0, _apiHeadlessCms.createCmsModel)((0, _apiHeadlessCms.
|
|
|
208
206
|
label: "Event Response"
|
|
209
207
|
}]
|
|
210
208
|
}));
|
|
211
|
-
const taskModel = taskModelPlugin.contentModel;
|
|
212
|
-
exports.
|
|
213
|
-
const taskLogModel = taskLogModelPlugin.contentModel;
|
|
214
|
-
exports.taskLogModel = taskLogModel;
|
|
209
|
+
const taskModel = exports.taskModel = taskModelPlugin.contentModel;
|
|
210
|
+
const taskLogModel = exports.taskLogModel = taskLogModelPlugin.contentModel;
|
|
215
211
|
const createTaskModel = () => {
|
|
216
212
|
return [taskModelPlugin, taskLogModelPlugin];
|
|
217
213
|
};
|
package/crud/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_apiHeadlessCms","require","_types","WEBINY_TASK_MODEL_ID","exports","WEBINY_TASK_LOG_MODEL_ID","taskLogModelPlugin","createCmsModel","createPrivateModel","name","modelId","fields","id","fieldId","storageId","type","label","validation","message","multipleValues","settings","predefinedValues","enabled","values","value","ITaskLogItemType","INFO","ERROR","taskModelPlugin","TaskDataStatus","PENDING","RUNNING","FAILED","SUCCESS","ABORTED","defaultValue","taskModel","contentModel","taskLogModel","createTaskModel"],"sources":["model.ts"],"sourcesContent":["import { createCmsModel, createPrivateModel } from \"@webiny/api-headless-cms\";\nimport { ITaskLogItemType, TaskDataStatus } from \"~/types\";\n\nexport const WEBINY_TASK_MODEL_ID = \"webinyTask\";\nexport const WEBINY_TASK_LOG_MODEL_ID = \"webinyTaskLog\";\n\nconst taskLogModelPlugin = createCmsModel(\n createPrivateModel({\n name: \"Webiny Task Log\",\n modelId: WEBINY_TASK_LOG_MODEL_ID,\n fields: [\n {\n id: \"executionName\",\n fieldId: \"executionName\",\n storageId: \"text@executionName\",\n type: \"text\",\n label: \"Execution Name\"\n },\n {\n id: \"task\",\n fieldId: \"task\",\n storageId: \"text@task\",\n type: \"text\",\n label: \"Task\",\n validation: [\n {\n name: \"required\",\n message: \"Task is required.\"\n }\n ]\n },\n {\n id: \"iteration\",\n fieldId: \"iteration\",\n storageId: \"number@iteration\",\n type: \"number\",\n label: \"Iteration\",\n validation: [\n {\n name: \"required\",\n message: \"Iteration is required.\"\n }\n ]\n },\n {\n id: \"items\",\n fieldId: \"items\",\n storageId: \"object@items\",\n type: \"object\",\n label: \"Items\",\n multipleValues: true,\n validation: [\n {\n name: \"required\",\n message: \"Items is required.\"\n }\n ],\n settings: {\n fields: [\n {\n id: \"message\",\n fieldId: \"message\",\n storageId: \"text@message\",\n type: \"text\",\n label: \"Message\",\n validation: [\n {\n name: \"required\",\n message: \"Message is required.\"\n }\n ]\n },\n {\n id: \"createdOn\",\n fieldId: \"createdOn\",\n storageId: \"datetime@createdOn\",\n type: \"datetime\",\n label: \"Created On\",\n validation: [\n {\n name: \"required\",\n message: \"Created On is required.\"\n }\n ]\n },\n {\n id: \"type\",\n fieldId: \"type\",\n storageId: \"text@type\",\n type: \"text\",\n label: \"Type\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: ITaskLogItemType.INFO,\n label: \"Info\"\n },\n {\n value: ITaskLogItemType.ERROR,\n label: \"Error\"\n }\n ]\n },\n validation: [\n {\n name: \"required\",\n message: \"Type is required.\"\n }\n ]\n },\n {\n id: \"data\",\n fieldId: \"data\",\n storageId: \"object@data\",\n type: \"json\",\n label: \"Data\"\n },\n {\n id: \"error\",\n fieldId: \"error\",\n storageId: \"object@error\",\n type: \"json\",\n label: \"Error\"\n }\n ]\n }\n }\n ]\n })\n);\n\nconst taskModelPlugin = createCmsModel(\n createPrivateModel({\n name: \"Webiny Task\",\n modelId: WEBINY_TASK_MODEL_ID,\n fields: [\n {\n id: \"name\",\n fieldId: \"name\",\n storageId: \"text@name\",\n type: \"text\",\n label: \"Name\",\n validation: [\n {\n name: \"required\",\n message: \"Name is required.\"\n }\n ]\n },\n {\n id: \"definitionId\",\n fieldId: \"definitionId\",\n storageId: \"text@definitionId\",\n type: \"text\",\n label: \"Definition ID\",\n validation: [\n {\n name: \"required\",\n message: \"Definition ID is required.\"\n }\n ]\n },\n {\n id: \"parentId\",\n fieldId: \"parentId\",\n storageId: \"text@parentId\",\n type: \"text\",\n label: \"Parent ID\"\n },\n {\n id: \"executionName\",\n fieldId: \"executionName\",\n storageId: \"text@executionName\",\n type: \"text\",\n label: \"Execution Name\"\n },\n {\n id: \"iterations\",\n fieldId: \"iterations\",\n storageId: \"number@iterations\",\n type: \"number\",\n label: \"Iterations\"\n },\n {\n id: \"input\",\n fieldId: \"input\",\n storageId: \"object@input\",\n type: \"json\",\n label: \"Input\"\n },\n {\n id: \"output\",\n fieldId: \"output\",\n storageId: \"object@output\",\n type: \"json\",\n label: \"Output\"\n },\n {\n id: \"taskStatus\",\n fieldId: \"taskStatus\",\n storageId: \"text@taskStatus\",\n type: \"text\",\n label: \"Status\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: TaskDataStatus.PENDING,\n label: \"Pending\"\n },\n {\n value: TaskDataStatus.RUNNING,\n label: \"Running\"\n },\n {\n value: TaskDataStatus.FAILED,\n label: \"Failed\"\n },\n {\n value: TaskDataStatus.SUCCESS,\n label: \"Success\"\n },\n {\n value: TaskDataStatus.ABORTED,\n label: \"Aborted\"\n }\n ]\n },\n settings: {\n defaultValue: TaskDataStatus.PENDING\n }\n },\n {\n id: \"startedOn\",\n fieldId: \"startedOn\",\n storageId: \"datetime@startedOn\",\n type: \"datetime\",\n label: \"Started On\"\n },\n {\n id: \"finishedOn\",\n fieldId: \"finishedOn\",\n storageId: \"datetime@finishedOn\",\n type: \"datetime\",\n label: \"Finished On\"\n },\n {\n id: \"eventResponse\",\n fieldId: \"eventResponse\",\n storageId: \"object@eventResponse\",\n type: \"json\",\n label: \"Event Response\"\n }\n ]\n })\n);\n\nexport const taskModel = taskModelPlugin.contentModel;\nexport const taskLogModel = taskLogModelPlugin.contentModel;\n\nexport const createTaskModel = () => {\n return [taskModelPlugin, taskLogModelPlugin];\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_apiHeadlessCms","require","_types","WEBINY_TASK_MODEL_ID","exports","WEBINY_TASK_LOG_MODEL_ID","taskLogModelPlugin","createCmsModel","createPrivateModel","name","modelId","fields","id","fieldId","storageId","type","label","validation","message","multipleValues","settings","predefinedValues","enabled","values","value","ITaskLogItemType","INFO","ERROR","taskModelPlugin","TaskDataStatus","PENDING","RUNNING","FAILED","SUCCESS","ABORTED","defaultValue","taskModel","contentModel","taskLogModel","createTaskModel"],"sources":["model.ts"],"sourcesContent":["import { createCmsModel, createPrivateModel } from \"@webiny/api-headless-cms\";\nimport { ITaskLogItemType, TaskDataStatus } from \"~/types\";\n\nexport const WEBINY_TASK_MODEL_ID = \"webinyTask\";\nexport const WEBINY_TASK_LOG_MODEL_ID = \"webinyTaskLog\";\n\nconst taskLogModelPlugin = createCmsModel(\n createPrivateModel({\n name: \"Webiny Task Log\",\n modelId: WEBINY_TASK_LOG_MODEL_ID,\n fields: [\n {\n id: \"executionName\",\n fieldId: \"executionName\",\n storageId: \"text@executionName\",\n type: \"text\",\n label: \"Execution Name\"\n },\n {\n id: \"task\",\n fieldId: \"task\",\n storageId: \"text@task\",\n type: \"text\",\n label: \"Task\",\n validation: [\n {\n name: \"required\",\n message: \"Task is required.\"\n }\n ]\n },\n {\n id: \"iteration\",\n fieldId: \"iteration\",\n storageId: \"number@iteration\",\n type: \"number\",\n label: \"Iteration\",\n validation: [\n {\n name: \"required\",\n message: \"Iteration is required.\"\n }\n ]\n },\n {\n id: \"items\",\n fieldId: \"items\",\n storageId: \"object@items\",\n type: \"object\",\n label: \"Items\",\n multipleValues: true,\n validation: [\n {\n name: \"required\",\n message: \"Items is required.\"\n }\n ],\n settings: {\n fields: [\n {\n id: \"message\",\n fieldId: \"message\",\n storageId: \"text@message\",\n type: \"text\",\n label: \"Message\",\n validation: [\n {\n name: \"required\",\n message: \"Message is required.\"\n }\n ]\n },\n {\n id: \"createdOn\",\n fieldId: \"createdOn\",\n storageId: \"datetime@createdOn\",\n type: \"datetime\",\n label: \"Created On\",\n validation: [\n {\n name: \"required\",\n message: \"Created On is required.\"\n }\n ]\n },\n {\n id: \"type\",\n fieldId: \"type\",\n storageId: \"text@type\",\n type: \"text\",\n label: \"Type\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: ITaskLogItemType.INFO,\n label: \"Info\"\n },\n {\n value: ITaskLogItemType.ERROR,\n label: \"Error\"\n }\n ]\n },\n validation: [\n {\n name: \"required\",\n message: \"Type is required.\"\n }\n ]\n },\n {\n id: \"data\",\n fieldId: \"data\",\n storageId: \"object@data\",\n type: \"json\",\n label: \"Data\"\n },\n {\n id: \"error\",\n fieldId: \"error\",\n storageId: \"object@error\",\n type: \"json\",\n label: \"Error\"\n }\n ]\n }\n }\n ]\n })\n);\n\nconst taskModelPlugin = createCmsModel(\n createPrivateModel({\n name: \"Webiny Task\",\n modelId: WEBINY_TASK_MODEL_ID,\n fields: [\n {\n id: \"name\",\n fieldId: \"name\",\n storageId: \"text@name\",\n type: \"text\",\n label: \"Name\",\n validation: [\n {\n name: \"required\",\n message: \"Name is required.\"\n }\n ]\n },\n {\n id: \"definitionId\",\n fieldId: \"definitionId\",\n storageId: \"text@definitionId\",\n type: \"text\",\n label: \"Definition ID\",\n validation: [\n {\n name: \"required\",\n message: \"Definition ID is required.\"\n }\n ]\n },\n {\n id: \"parentId\",\n fieldId: \"parentId\",\n storageId: \"text@parentId\",\n type: \"text\",\n label: \"Parent ID\"\n },\n {\n id: \"executionName\",\n fieldId: \"executionName\",\n storageId: \"text@executionName\",\n type: \"text\",\n label: \"Execution Name\"\n },\n {\n id: \"iterations\",\n fieldId: \"iterations\",\n storageId: \"number@iterations\",\n type: \"number\",\n label: \"Iterations\"\n },\n {\n id: \"input\",\n fieldId: \"input\",\n storageId: \"object@input\",\n type: \"json\",\n label: \"Input\"\n },\n {\n id: \"output\",\n fieldId: \"output\",\n storageId: \"object@output\",\n type: \"json\",\n label: \"Output\"\n },\n {\n id: \"taskStatus\",\n fieldId: \"taskStatus\",\n storageId: \"text@taskStatus\",\n type: \"text\",\n label: \"Status\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: TaskDataStatus.PENDING,\n label: \"Pending\"\n },\n {\n value: TaskDataStatus.RUNNING,\n label: \"Running\"\n },\n {\n value: TaskDataStatus.FAILED,\n label: \"Failed\"\n },\n {\n value: TaskDataStatus.SUCCESS,\n label: \"Success\"\n },\n {\n value: TaskDataStatus.ABORTED,\n label: \"Aborted\"\n }\n ]\n },\n settings: {\n defaultValue: TaskDataStatus.PENDING\n }\n },\n {\n id: \"startedOn\",\n fieldId: \"startedOn\",\n storageId: \"datetime@startedOn\",\n type: \"datetime\",\n label: \"Started On\"\n },\n {\n id: \"finishedOn\",\n fieldId: \"finishedOn\",\n storageId: \"datetime@finishedOn\",\n type: \"datetime\",\n label: \"Finished On\"\n },\n {\n id: \"eventResponse\",\n fieldId: \"eventResponse\",\n storageId: \"object@eventResponse\",\n type: \"json\",\n label: \"Event Response\"\n }\n ]\n })\n);\n\nexport const taskModel = taskModelPlugin.contentModel;\nexport const taskLogModel = taskLogModelPlugin.contentModel;\n\nexport const createTaskModel = () => {\n return [taskModelPlugin, taskLogModelPlugin];\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_types","_handlerGraphql","_EventBridgeEventTransport","MAX_DELAY_DAYS","MAX_DELAY_SECONDS","validateDelay","input","delay","Number","isInteger","WebinyError","createTriggerTasksCrud","context","config","getTenant","tenancy","getCurrentTenant","id","getLocale","cms","code","eventBridgeEventTransport","EventBridgeEventTransport","trigger","params","definition","inputValues","name","parent","tasks","getDefinition","title","definitionId","parentId","onBeforeTrigger","data","task","createTask","event","send","ex","deleteTask","updateTask","eventResponse","abort","getTask","NotFoundError","TaskDataStatus","PENDING","RUNNING","includes","taskStatus","status","taskLog","getLatestLog","createLog","iteration","executionName","updatedTask","ABORTED","updateLog","items","concat","message","type","ITaskLogItemType","INFO","createdOn","Date","toISOString","onAbort","exports"],"sources":["trigger.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n Context,\n ITask,\n ITaskAbortParams,\n ITaskConfig,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskLogItemType,\n ITasksContextTriggerObject,\n ITaskTriggerParams,\n TaskDataStatus\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { EventBridgeEventTransport, PutEventsCommandOutput } from \"./EventBridgeEventTransport\";\n\nconst MAX_DELAY_DAYS = 355;\nconst MAX_DELAY_SECONDS = MAX_DELAY_DAYS * 24 * 60 * 60;\n\ninterface ValidateDelayParams {\n input: ITaskCreateData;\n delay?: number;\n}\n\nconst validateDelay = ({ input, delay }: ValidateDelayParams): void => {\n if (!delay || delay < 0 || typeof delay !== \"number\" || Number.isInteger(delay) === false) {\n return;\n } else if (delay < MAX_DELAY_SECONDS) {\n return;\n }\n throw new WebinyError(\n `The maximum delay for a task is ${MAX_DELAY_DAYS} days.`,\n \"MAX_DELAY_ERROR\",\n {\n ...input,\n delay\n }\n );\n};\n\nexport const createTriggerTasksCrud = (\n context: Context,\n config: ITaskConfig\n): ITasksContextTriggerObject => {\n const getTenant = (): string => {\n return context.tenancy.getCurrentTenant().id;\n };\n const getLocale = (): string => {\n return context.cms.getLocale().code;\n };\n const eventBridgeEventTransport = new EventBridgeEventTransport({\n config,\n getTenant,\n getLocale\n });\n\n return {\n trigger: async <T = ITaskDataInput>(params: ITaskTriggerParams<T>): Promise<ITask<T>> => {\n const { definition: id, input: inputValues, name, parent, delay = 0 } = params;\n const definition = context.tasks.getDefinition(id);\n if (!definition) {\n throw new WebinyError(`Task definition was not found!`, \"TASK_DEFINITION_ERROR\", {\n id\n });\n }\n const input: ITaskCreateData<T> = {\n name: name || definition.title,\n definitionId: id,\n input: inputValues || ({} as T),\n parentId: parent?.id\n };\n if (definition.onBeforeTrigger) {\n await definition.onBeforeTrigger<T>({\n context,\n data: input\n });\n }\n validateDelay({\n input,\n delay\n });\n\n const task = await context.tasks.createTask<T>(input);\n\n let event: PutEventsCommandOutput | null = null;\n try {\n event = await eventBridgeEventTransport.send(task, delay);\n\n if (!event) {\n throw new WebinyError(\n `Could not create the Event Bridge Event!`,\n \"CREATE_EVENT_BRIDGE_EVENT_ERROR\",\n {\n task\n }\n );\n }\n } catch (ex) {\n /**\n * In case of failure to create the Event Bridge Event, we need to delete the task that was meant to be created.\n * TODO maybe we can leave the task and update it as failed - with event bridge error?\n */\n await context.tasks.deleteTask(task.id);\n throw ex;\n }\n return await context.tasks.updateTask(task.id, {\n eventResponse: event\n });\n },\n abort: async (params: ITaskAbortParams): Promise<ITask> => {\n const task = await context.tasks.getTask(params.id);\n if (!task) {\n throw new NotFoundError(`Task \"${params.id}\" was not found!`);\n }\n\n const definition = context.tasks.getDefinition(task.definitionId);\n if (!definition) {\n throw new WebinyError(`Task definition was not found!`, \"TASK_DEFINITION_ERROR\", {\n id: task.id\n });\n }\n /**\n * We should only be able to abort a task which is pending or running\n */\n if (\n [TaskDataStatus.PENDING, TaskDataStatus.RUNNING].includes(task.taskStatus) === false\n ) {\n throw new WebinyError(\n `Cannot abort a task that is not pending or running!`,\n \"TASK_ABORT_ERROR\",\n {\n id: params.id,\n status: task.taskStatus\n }\n );\n }\n let taskLog: ITaskLog | null = null;\n try {\n taskLog = await context.tasks.getLatestLog(task.id);\n } catch (ex) {}\n if (!taskLog) {\n taskLog = await context.tasks.createLog(task, {\n iteration: 1,\n executionName: task.executionName\n });\n }\n try {\n const updatedTask = await context.tasks.updateTask(task.id, {\n taskStatus: TaskDataStatus.ABORTED\n });\n await context.tasks.updateLog(taskLog.id, {\n items: taskLog.items.concat([\n {\n message: params.message || \"Task aborted.\",\n type: ITaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ])\n });\n /**\n * TODO: determine when to kick off the onAbort hook\n */\n if (definition.onAbort) {\n await definition.onAbort({\n context,\n task: updatedTask\n });\n }\n\n return updatedTask;\n } catch (ex) {\n throw new WebinyError(`Could not abort the task!`, \"TASK_ABORT_ERROR\", {\n id: params.id,\n message: ex.message\n });\n }\n }\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_types","_handlerGraphql","_EventBridgeEventTransport","MAX_DELAY_DAYS","MAX_DELAY_SECONDS","validateDelay","input","delay","Number","isInteger","WebinyError","createTriggerTasksCrud","context","config","getTenant","tenancy","getCurrentTenant","id","getLocale","cms","code","eventBridgeEventTransport","EventBridgeEventTransport","trigger","params","definition","inputValues","name","parent","tasks","getDefinition","title","definitionId","parentId","onBeforeTrigger","data","task","createTask","event","send","ex","deleteTask","updateTask","eventResponse","abort","getTask","NotFoundError","TaskDataStatus","PENDING","RUNNING","includes","taskStatus","status","taskLog","getLatestLog","createLog","iteration","executionName","updatedTask","ABORTED","updateLog","items","concat","message","type","ITaskLogItemType","INFO","createdOn","Date","toISOString","onAbort","exports"],"sources":["trigger.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n Context,\n ITask,\n ITaskAbortParams,\n ITaskConfig,\n ITaskCreateData,\n ITaskDataInput,\n ITaskLog,\n ITaskLogItemType,\n ITasksContextTriggerObject,\n ITaskTriggerParams,\n TaskDataStatus\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { EventBridgeEventTransport, PutEventsCommandOutput } from \"./EventBridgeEventTransport\";\n\nconst MAX_DELAY_DAYS = 355;\nconst MAX_DELAY_SECONDS = MAX_DELAY_DAYS * 24 * 60 * 60;\n\ninterface ValidateDelayParams {\n input: ITaskCreateData;\n delay?: number;\n}\n\nconst validateDelay = ({ input, delay }: ValidateDelayParams): void => {\n if (!delay || delay < 0 || typeof delay !== \"number\" || Number.isInteger(delay) === false) {\n return;\n } else if (delay < MAX_DELAY_SECONDS) {\n return;\n }\n throw new WebinyError(\n `The maximum delay for a task is ${MAX_DELAY_DAYS} days.`,\n \"MAX_DELAY_ERROR\",\n {\n ...input,\n delay\n }\n );\n};\n\nexport const createTriggerTasksCrud = (\n context: Context,\n config: ITaskConfig\n): ITasksContextTriggerObject => {\n const getTenant = (): string => {\n return context.tenancy.getCurrentTenant().id;\n };\n const getLocale = (): string => {\n return context.cms.getLocale().code;\n };\n const eventBridgeEventTransport = new EventBridgeEventTransport({\n config,\n getTenant,\n getLocale\n });\n\n return {\n trigger: async <T = ITaskDataInput>(params: ITaskTriggerParams<T>): Promise<ITask<T>> => {\n const { definition: id, input: inputValues, name, parent, delay = 0 } = params;\n const definition = context.tasks.getDefinition(id);\n if (!definition) {\n throw new WebinyError(`Task definition was not found!`, \"TASK_DEFINITION_ERROR\", {\n id\n });\n }\n const input: ITaskCreateData<T> = {\n name: name || definition.title,\n definitionId: id,\n input: inputValues || ({} as T),\n parentId: parent?.id\n };\n if (definition.onBeforeTrigger) {\n await definition.onBeforeTrigger<T>({\n context,\n data: input\n });\n }\n validateDelay({\n input,\n delay\n });\n\n const task = await context.tasks.createTask<T>(input);\n\n let event: PutEventsCommandOutput | null = null;\n try {\n event = await eventBridgeEventTransport.send(task, delay);\n\n if (!event) {\n throw new WebinyError(\n `Could not create the Event Bridge Event!`,\n \"CREATE_EVENT_BRIDGE_EVENT_ERROR\",\n {\n task\n }\n );\n }\n } catch (ex) {\n /**\n * In case of failure to create the Event Bridge Event, we need to delete the task that was meant to be created.\n * TODO maybe we can leave the task and update it as failed - with event bridge error?\n */\n await context.tasks.deleteTask(task.id);\n throw ex;\n }\n return await context.tasks.updateTask(task.id, {\n eventResponse: event\n });\n },\n abort: async (params: ITaskAbortParams): Promise<ITask> => {\n const task = await context.tasks.getTask(params.id);\n if (!task) {\n throw new NotFoundError(`Task \"${params.id}\" was not found!`);\n }\n\n const definition = context.tasks.getDefinition(task.definitionId);\n if (!definition) {\n throw new WebinyError(`Task definition was not found!`, \"TASK_DEFINITION_ERROR\", {\n id: task.id\n });\n }\n /**\n * We should only be able to abort a task which is pending or running\n */\n if (\n [TaskDataStatus.PENDING, TaskDataStatus.RUNNING].includes(task.taskStatus) === false\n ) {\n throw new WebinyError(\n `Cannot abort a task that is not pending or running!`,\n \"TASK_ABORT_ERROR\",\n {\n id: params.id,\n status: task.taskStatus\n }\n );\n }\n let taskLog: ITaskLog | null = null;\n try {\n taskLog = await context.tasks.getLatestLog(task.id);\n } catch (ex) {}\n if (!taskLog) {\n taskLog = await context.tasks.createLog(task, {\n iteration: 1,\n executionName: task.executionName\n });\n }\n try {\n const updatedTask = await context.tasks.updateTask(task.id, {\n taskStatus: TaskDataStatus.ABORTED\n });\n await context.tasks.updateLog(taskLog.id, {\n items: taskLog.items.concat([\n {\n message: params.message || \"Task aborted.\",\n type: ITaskLogItemType.INFO,\n createdOn: new Date().toISOString()\n }\n ])\n });\n /**\n * TODO: determine when to kick off the onAbort hook\n */\n if (definition.onAbort) {\n await definition.onAbort({\n context,\n task: updatedTask\n });\n }\n\n return updatedTask;\n } catch (ex) {\n throw new WebinyError(`Could not abort the task!`, \"TASK_ABORT_ERROR\", {\n id: params.id,\n message: ex.message\n });\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/crud/where.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["maps","id","id_in","id_not","id_not_in","remapWhere","where","undefined","result","key","value","newKey","exports"],"sources":["where.ts"],"sourcesContent":["const maps: Record<string, string> = {\n id: \"entryId\",\n id_in: \"entryId_in\",\n id_not: \"entryId_not\",\n id_not_in: \"entryId_not_in\"\n};\n\nexport const remapWhere = <T extends Record<string, any>>(where?: T): T | undefined => {\n if (!where) {\n return undefined;\n }\n const result: T = { ...where };\n for (const key in maps) {\n const value = result[key];\n delete result[key];\n if (value === undefined) {\n continue;\n }\n const newKey = maps[key];\n result[newKey as keyof T] = value;\n }\n return result;\n};\n"],"mappings":";;;;;;AAAA,MAAMA,IAA4B,GAAG;EACjCC,EAAE,EAAE,SAAS;EACbC,KAAK,EAAE,YAAY;EACnBC,MAAM,EAAE,aAAa;EACrBC,SAAS,EAAE;AACf,CAAC;AAEM,MAAMC,UAAU,GAAmCC,KAAS,IAAoB;EACnF,IAAI,CAACA,KAAK,EAAE;IACR,OAAOC,SAAS;EACpB;EACA,MAAMC,MAAS,GAAG;IAAE,GAAGF;EAAM,CAAC;EAC9B,KAAK,MAAMG,GAAG,IAAIT,IAAI,EAAE;IACpB,MAAMU,KAAK,GAAGF,MAAM,CAACC,GAAG,CAAC;IACzB,OAAOD,MAAM,CAACC,GAAG,CAAC;IAClB,IAAIC,KAAK,KAAKH,SAAS,EAAE;MACrB;IACJ;IACA,MAAMI,MAAM,GAAGX,IAAI,CAACS,GAAG,CAAC;IACxBD,MAAM,CAACG,MAAM,CAAY,GAAGD,KAAK;EACrC;EACA,OAAOF,MAAM;AACjB,CAAC;AAACI,OAAA,CAAAP,UAAA,GAAAA,UAAA"}
|
|
1
|
+
{"version":3,"names":["maps","id","id_in","id_not","id_not_in","remapWhere","where","undefined","result","key","value","newKey","exports"],"sources":["where.ts"],"sourcesContent":["const maps: Record<string, string> = {\n id: \"entryId\",\n id_in: \"entryId_in\",\n id_not: \"entryId_not\",\n id_not_in: \"entryId_not_in\"\n};\n\nexport const remapWhere = <T extends Record<string, any>>(where?: T): T | undefined => {\n if (!where) {\n return undefined;\n }\n const result: T = { ...where };\n for (const key in maps) {\n const value = result[key];\n delete result[key];\n if (value === undefined) {\n continue;\n }\n const newKey = maps[key];\n result[newKey as keyof T] = value;\n }\n return result;\n};\n"],"mappings":";;;;;;AAAA,MAAMA,IAA4B,GAAG;EACjCC,EAAE,EAAE,SAAS;EACbC,KAAK,EAAE,YAAY;EACnBC,MAAM,EAAE,aAAa;EACrBC,SAAS,EAAE;AACf,CAAC;AAEM,MAAMC,UAAU,GAAmCC,KAAS,IAAoB;EACnF,IAAI,CAACA,KAAK,EAAE;IACR,OAAOC,SAAS;EACpB;EACA,MAAMC,MAAS,GAAG;IAAE,GAAGF;EAAM,CAAC;EAC9B,KAAK,MAAMG,GAAG,IAAIT,IAAI,EAAE;IACpB,MAAMU,KAAK,GAAGF,MAAM,CAACC,GAAG,CAAC;IACzB,OAAOD,MAAM,CAACC,GAAG,CAAC;IAClB,IAAIC,KAAK,KAAKH,SAAS,EAAE;MACrB;IACJ;IACA,MAAMI,MAAM,GAAGX,IAAI,CAACS,GAAG,CAAC;IACxBD,MAAM,CAACG,MAAM,CAAY,GAAGD,KAAK;EACrC;EACA,OAAOF,MAAM;AACjB,CAAC;AAACI,OAAA,CAAAP,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -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 { 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":[]}
|
package/graphql/index.js.map
CHANGED
|
@@ -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","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 {\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 { 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 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, 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 // @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\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,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","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","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 {\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 { 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 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, 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 // @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\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,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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","ignoreList":[]}
|
package/graphql/utils.js.map
CHANGED
|
@@ -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 { 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":[]}
|
package/handler/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_handler","require","_plugins","_execute","_types","_runner","_timer","_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 { 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 { ITaskRawEvent } from \"~/handler/types\";\nimport { TaskRunner } from \"~/runner\";\nimport WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"~/timer\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, 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 (_, 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 }\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;AAEA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAQA,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;QACnC;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAACC,OAAA,CAAAtC,aAAA,GAAAA,aAAA"}
|
|
1
|
+
{"version":3,"names":["_handler","require","_plugins","_execute","_types","_runner","_timer","_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 { 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 { ITaskRawEvent } from \"~/handler/types\";\nimport { TaskRunner } from \"~/runner\";\nimport WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"~/timer\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, 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 (_, 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 }\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;AAEA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAQA,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;QACnC;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAACC,OAAA,CAAAtC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
package/handler/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_registry","require","_index","_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 { 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 silent: true\n});\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,EAAE;EACvBa,MAAM,EAAE;AACZ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"names":["_registry","require","_index","_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 { 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 silent: true\n});\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,EAAE;EACvBa,MAAM,EAAE;AACZ,CAAC,CAAC","ignoreList":[]}
|
package/handler/types.js.map
CHANGED
|
@@ -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 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":""}
|
|
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 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.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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":[]}
|