@ezpaarse-project/ezreeport-sdk-js 2.0.0-beta.1 → 2.0.0-rc.1

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.
@@ -1,7 +1,7 @@
1
1
  import { A as ApiRequestOptions } from '../api-C_g0ldUn.js';
2
2
  import { R as ReportResult, f as RawReportResult } from '../types-jXqGnCKQ.js';
3
- import { T as Task } from '../types-y2f9Jb4M.js';
4
- import { J as Job, G as GenerationData, M as MailData, a as MailError, P as PaginatedJobs, b as JobStatus } from '../index-CWHjM0a3.js';
3
+ import { T as Task } from '../types-C4AhJDkW.js';
4
+ import { J as Job, G as GenerationData, M as MailData, a as MailError, P as PaginatedJobs, b as JobStatus } from '../index-6ma-WCUD.js';
5
5
  import '../namespaces.js';
6
6
  import '../types-DcoMmjs3.js';
7
7
 
@@ -1,10 +1,10 @@
1
1
  import { L as LayoutHelper } from '../templates-BgRTZc5c.js';
2
2
  export { c as createLayoutHelper, a as createLayoutHelperFrom, h as hashLayout, l as layoutHelperToJSON } from '../templates-BgRTZc5c.js';
3
- import { T as TaskLayoutHelper } from '../tasks-CYqJgTvz.js';
4
- export { c as createTaskLayoutHelper, a as createTaskLayoutHelperFrom, t as taskLayoutHelperToJSON } from '../tasks-CYqJgTvz.js';
3
+ import { T as TaskLayoutHelper } from '../tasks-BDFAJ6Oi.js';
4
+ export { c as createTaskLayoutHelper, a as createTaskLayoutHelperFrom, t as taskLayoutHelperToJSON } from '../tasks-BDFAJ6Oi.js';
5
5
  import { AnyFigureHelper } from './figures.js';
6
6
  import '../types-DcoMmjs3.js';
7
- import '../types-y2f9Jb4M.js';
7
+ import '../types-C4AhJDkW.js';
8
8
  import '../namespaces.js';
9
9
  import './aggregations.js';
10
10
 
@@ -1,6 +1,6 @@
1
- import { T as TaskPreset } from '../types-CpDGJRQw.js';
1
+ import { T as TaskPreset } from '../types-BGlpjxH9.js';
2
2
  import '../types-DcoMmjs3.js';
3
- import '../types-y2f9Jb4M.js';
3
+ import '../types-C4AhJDkW.js';
4
4
  import '../namespaces.js';
5
5
 
6
6
  /**
@@ -1,8 +1,8 @@
1
- import { a as TaskRecurrence, L as LastExtended, T as Task } from '../types-y2f9Jb4M.js';
1
+ import { a as TaskRecurrence, L as LastExtended, T as Task } from '../types-C4AhJDkW.js';
2
2
  import { T as TemplateBodyHelper } from '../body-BqAn9vHJ.js';
3
3
  import { L as LayoutHelper } from '../templates-BgRTZc5c.js';
4
4
  import { c as TemplateFilter } from '../types-DcoMmjs3.js';
5
- import { T as TaskLayoutHelper } from '../tasks-CYqJgTvz.js';
5
+ import { T as TaskLayoutHelper } from '../tasks-BDFAJ6Oi.js';
6
6
  import '../namespaces.js';
7
7
  import './figures.js';
8
8
  import './aggregations.js';
@@ -21,6 +21,7 @@ declare function updateLayoutOfHelper(body: TaskBodyHelper, oldLayout: TaskLayou
21
21
  interface TaskHelper {
22
22
  readonly id: string;
23
23
  name: string;
24
+ description: string;
24
25
  namespaceId: string;
25
26
  extendedId: string;
26
27
  template: TaskBodyHelper;
@@ -34,7 +35,7 @@ interface TaskHelper {
34
35
  readonly updatedAt?: Date;
35
36
  readonly hash: string;
36
37
  }
37
- declare function createTaskHelper(name?: string, namespaceId?: string, extendedId?: string, template?: TaskBodyHelper, targets?: string[], recurrence?: TaskRecurrence, nextRun?: Date, enabled?: boolean, lastExtended?: LastExtended, lastRun?: Date, id?: string, createdAt?: Date, updatedAt?: Date): TaskHelper;
38
+ declare function createTaskHelper(name?: string, description?: string, namespaceId?: string, extendedId?: string, template?: TaskBodyHelper, targets?: string[], recurrence?: TaskRecurrence, nextRun?: Date, enabled?: boolean, lastExtended?: LastExtended, lastRun?: Date, id?: string, createdAt?: Date, updatedAt?: Date): TaskHelper;
38
39
  declare function createTaskHelperFrom(task: Task): TaskHelper;
39
40
  declare function taskHelperToJSON(task: TaskHelper): Task;
40
41
  declare function hasTaskChanged(task: TaskHelper): boolean;
@@ -1,2 +1,2 @@
1
- "use strict";var S=Object.defineProperty,F=Object.defineProperties;var R=Object.getOwnPropertyDescriptors;var i=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var x=(e,n,r)=>n in e?S(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,f=(e,n)=>{for(var r in n||(n={}))T.call(n,r)&&x(e,r,n[r]);if(i)for(var r of i(n))H.call(n,r)&&x(e,r,n[r]);return e},m=(e,n)=>F(e,R(n));var g=(e,n)=>{var r={};for(var t in e)T.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&i)for(var t of i(e))n.indexOf(t)<0&&H.call(e,t)&&(r[t]=e[t]);return r};var h=(e,n,r)=>new Promise((t,a)=>{var d=s=>{try{o(r.next(s))}catch(c){a(c)}},u=s=>{try{o(r.throw(s))}catch(c){a(c)}},o=s=>s.done?t(s.value):Promise.resolve(s.value).then(d,u);o((r=r.apply(e,n)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("../decorator-C2gcn2rK.js"),l=require("../methods-cUjyNkoK.js"),q=require("object-hash"),y=require("../tasks-hn70eL7B.js");function I(e="",n="",r=[],t=[]){var a;return{version:2,dateField:n,inserts:r,filters:new Map((a=t==null?void 0:t.map(d=>[d.name,d]))!=null?a:[]),index:e}}function D(e){return I(e.index,e.dateField,e.inserts.map(n=>y.createTaskLayoutHelperFrom(n)),e.filters)}function J(e){return{version:e.version,index:e.index,inserts:e.inserts.map(n=>y.taskLayoutHelperToJSON(n)),dateField:e.dateField,filters:Array.from(e.filters.values())}}function N(e,n){if(e.inserts.some(r=>r.id===n.id))throw new Error(`Layout "${n.id}" already exists`);return e.inserts.splice(n.at,0,n),e}function B(e,n){const r=e;return r.inserts=e.inserts.filter(t=>t.id!==n.id),e}function j(e,n,r){const t=e.inserts.findIndex(d=>d.id===n.id);if(t<0)throw new Error(`Layout "${n.id}" not found`);const a=e;return a.inserts[t]=r,e}function O(e){return q({name:e.name,extendedId:e.extendedId,template:e.template,targets:e.targets,recurrence:e.recurrence,nextRun:e.nextRun,enabled:e.enabled})}function L(e="",n="",r="",t,a=[],d="DAILY",u,o=!0,s,c,E="",v=new Date,A){const p={id:E,name:e,namespaceId:n,extendedId:r,template:t!=null?t:I(),targets:a,recurrence:d,nextRun:u!=null?u:new Date,enabled:o,lastExtended:s,lastRun:c,createdAt:v,updatedAt:A,hash:""};return p.hash=O(p),p}function C(e){var n;return L(e.name,e.namespaceId,e.extendedId,D(e.template),e.targets,e.recurrence,e.nextRun,e.enabled,(n=e.lastExtended)!=null?n:void 0,e.lastRun,e.id,e.createdAt,e.updatedAt)}function M(e){return{id:e.id,name:e.name,namespaceId:e.namespaceId,extendedId:e.extendedId,template:J(e.template),targets:e.targets,recurrence:e.recurrence,nextRun:e.nextRun,enabled:e.enabled,lastExtended:e.lastExtended,lastRun:e.lastRun,createdAt:e.createdAt,updatedAt:e.updatedAt}}function $(e){return e.hash!==O(e)}function P(e,n){const r=n.layouts.map(d=>m(f({},d),{readonly:!0}));for(const t of e.inserts){const a=t,{at:d}=a,u=g(a,["at"]);r.splice(d,0,m(f({},u),{readonly:!1}))}return r}function w(e,n){return h(this,null,function*(){const r=yield l.getTask(e);return yield l.upsertTask({id:r.id,name:r.name,extendedId:r.extendedId,namespaceId:r.namespaceId,nextRun:r.nextRun,recurrence:r.recurrence,targets:r.targets,template:r.template,lastExtended:r.lastExtended,enabled:n})})}b.assignDependencies(w,[l.getTask,l.upsertTask]);exports.addLayoutOfHelper=N;exports.changeTaskEnableState=w;exports.createTaskHelper=L;exports.createTaskHelperFrom=C;exports.getLayoutsOfHelpers=P;exports.hasTaskChanged=$;exports.removeLayoutOfHelper=B;exports.taskHelperToJSON=M;exports.updateLayoutOfHelper=j;
1
+ "use strict";var F=Object.defineProperty,R=Object.defineProperties;var b=Object.getOwnPropertyDescriptors;var u=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var x=(e,r,n)=>r in e?F(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,f=(e,r)=>{for(var n in r||(r={}))T.call(r,n)&&x(e,n,r[n]);if(u)for(var n of u(r))H.call(r,n)&&x(e,n,r[n]);return e},m=(e,r)=>R(e,b(r));var g=(e,r)=>{var n={};for(var t in e)T.call(e,t)&&r.indexOf(t)<0&&(n[t]=e[t]);if(e!=null&&u)for(var t of u(e))r.indexOf(t)<0&&H.call(e,t)&&(n[t]=e[t]);return n};var h=(e,r,n)=>new Promise((t,a)=>{var d=s=>{try{i(n.next(s))}catch(c){a(c)}},o=s=>{try{i(n.throw(s))}catch(c){a(c)}},i=s=>s.done?t(s.value):Promise.resolve(s.value).then(d,o);i((n=n.apply(e,r)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("../decorator-C2gcn2rK.js"),l=require("../methods-cUjyNkoK.js"),D=require("object-hash"),y=require("../tasks-hn70eL7B.js");function I(e="",r="",n=[],t=[]){var a;return{version:2,dateField:r,inserts:n,filters:new Map((a=t==null?void 0:t.map(d=>[d.name,d]))!=null?a:[]),index:e}}function J(e){return I(e.index,e.dateField,e.inserts.map(r=>y.createTaskLayoutHelperFrom(r)),e.filters)}function N(e){return{version:e.version,index:e.index,inserts:e.inserts.map(r=>y.taskLayoutHelperToJSON(r)),dateField:e.dateField,filters:Array.from(e.filters.values())}}function B(e,r){if(e.inserts.some(n=>n.id===r.id))throw new Error(`Layout "${r.id}" already exists`);return e.inserts.splice(r.at,0,r),e}function j(e,r){const n=e;return n.inserts=e.inserts.filter(t=>t.id!==r.id),e}function C(e,r,n){const t=e.inserts.findIndex(d=>d.id===r.id);if(t<0)throw new Error(`Layout "${r.id}" not found`);const a=e;return a.inserts[t]=n,e}function O(e){return D({name:e.name,extendedId:e.extendedId,template:e.template,targets:e.targets,recurrence:e.recurrence,nextRun:e.nextRun,enabled:e.enabled})}function L(e="",r="",n="",t="",a,d=[],o="DAILY",i,s=!0,c,E,v="",A=new Date,S){const p={id:v,name:e,description:r,namespaceId:n,extendedId:t,template:a!=null?a:I(),targets:d,recurrence:o,nextRun:i!=null?i:new Date,enabled:s,lastExtended:c,lastRun:E,createdAt:A,updatedAt:S,hash:""};return p.hash=O(p),p}function M(e){var r;return L(e.name,e.description,e.namespaceId,e.extendedId,J(e.template),e.targets,e.recurrence,e.nextRun,e.enabled,(r=e.lastExtended)!=null?r:void 0,e.lastRun,e.id,e.createdAt,e.updatedAt)}function $(e){return{id:e.id,name:e.name,description:e.description,namespaceId:e.namespaceId,extendedId:e.extendedId,template:N(e.template),targets:e.targets,recurrence:e.recurrence,nextRun:e.nextRun,enabled:e.enabled,lastExtended:e.lastExtended,lastRun:e.lastRun,createdAt:e.createdAt,updatedAt:e.updatedAt}}function P(e){return e.hash!==O(e)}function Y(e,r){const n=r.layouts.map(d=>m(f({},d),{readonly:!0}));for(const t of e.inserts){const a=t,{at:d}=a,o=g(a,["at"]);n.splice(d,0,m(f({},o),{readonly:!1}))}return n}function w(e,r){return h(this,null,function*(){const n=yield l.getTask(e);return yield l.upsertTask({id:n.id,name:n.name,description:n.description,extendedId:n.extendedId,namespaceId:n.namespaceId,nextRun:n.nextRun,recurrence:n.recurrence,targets:n.targets,template:n.template,lastExtended:n.lastExtended,enabled:r})})}q.assignDependencies(w,[l.getTask,l.upsertTask]);exports.addLayoutOfHelper=B;exports.changeTaskEnableState=w;exports.createTaskHelper=L;exports.createTaskHelperFrom=M;exports.getLayoutsOfHelpers=Y;exports.hasTaskChanged=P;exports.removeLayoutOfHelper=j;exports.taskHelperToJSON=$;exports.updateLayoutOfHelper=C;
2
2
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sources":["../../src/helpers/tasks/editor/body.ts","../../src/helpers/tasks/editor/index.ts","../../src/helpers/tasks/index.ts"],"sourcesContent":["import type { TemplateFilter } from '~/modules/templates';\nimport type { Task } from '~/modules/tasks';\n\nimport {\n createTaskLayoutHelperFrom,\n taskLayoutHelperToJSON,\n type TaskLayoutHelper,\n} from '../../templates/editor/layouts';\n\nexport interface TaskBodyHelper {\n readonly version: number;\n filters: Map<string, TemplateFilter>;\n index: string;\n dateField?: string;\n inserts: TaskLayoutHelper[];\n}\n\nexport function createTaskBodyHelper(\n index: string = '',\n dateField: string = '',\n inserts: TaskLayoutHelper[] = [],\n filters: TemplateFilter[] = [],\n): TaskBodyHelper {\n return {\n version: 2,\n dateField,\n inserts,\n filters: new Map(filters?.map((filter) => [filter.name, filter]) ?? []),\n index,\n };\n}\n\nexport function createTaskBodyHelperFrom(template: Task['template']): TaskBodyHelper {\n return createTaskBodyHelper(\n template.index,\n template.dateField,\n template.inserts.map((l) => createTaskLayoutHelperFrom(l)),\n template.filters,\n );\n}\n\nexport function taskBodyHelperToJSON(template: TaskBodyHelper): Task['template'] {\n return {\n version: template.version,\n index: template.index,\n inserts: template.inserts.map((l) => taskLayoutHelperToJSON(l)),\n dateField: template.dateField,\n filters: Array.from(template.filters.values()),\n };\n}\n\nexport function addLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n if (body.inserts.some((l) => l.id === layout.id)) {\n throw new Error(`Layout \"${layout.id}\" already exists`);\n }\n body.inserts.splice(layout.at, 0, layout);\n return body;\n}\n\nexport function removeLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n const template = body;\n template.inserts = body.inserts.filter((l) => l.id !== layout.id);\n return body;\n}\n\nexport function updateLayoutOfHelper(\n body: TaskBodyHelper,\n oldLayout: TaskLayoutHelper,\n newLayout: TaskLayoutHelper,\n): TaskBodyHelper {\n const index = body.inserts.findIndex((l) => l.id === oldLayout.id);\n if (index < 0) {\n throw new Error(`Layout \"${oldLayout.id}\" not found`);\n }\n const template = body;\n template.inserts[index] = newLayout;\n return body;\n}\n","import objectHash from 'object-hash';\n\nimport type { Task } from '~/modules/tasks';\nimport type { LastExtended, TaskRecurrence } from '~/modules/tasks/types';\n\nimport type { TemplateBodyHelper } from '../../templates/editor/body';\nimport type { LayoutHelper } from '../../templates/editor/layouts';\nimport {\n createTaskBodyHelper,\n createTaskBodyHelperFrom,\n taskBodyHelperToJSON,\n type TaskBodyHelper,\n} from './body';\n\nexport interface TaskHelper {\n readonly id: string;\n name: string;\n namespaceId: string;\n extendedId: string;\n template: TaskBodyHelper;\n targets: string[];\n recurrence: TaskRecurrence;\n nextRun: Date;\n enabled: boolean;\n readonly lastExtended?: LastExtended | null;\n readonly lastRun?: Date;\n readonly createdAt: Date;\n readonly updatedAt?: Date;\n readonly hash: string;\n}\n\nfunction hashTask(task: TaskHelper | Task): string {\n return objectHash({\n name: task.name,\n extendedId: task.extendedId,\n template: task.template,\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n });\n}\n\nexport function createTaskHelper(\n name: string = '',\n namespaceId: string = '',\n extendedId: string = '',\n template?: TaskBodyHelper,\n targets: string[] = [],\n recurrence: TaskRecurrence = 'DAILY',\n nextRun?: Date,\n enabled: boolean = true,\n lastExtended?: LastExtended,\n lastRun?: Date,\n id: string = '',\n createdAt: Date = new Date(),\n updatedAt?: Date,\n): TaskHelper {\n const task = {\n id,\n name,\n namespaceId,\n extendedId,\n template: template ?? createTaskBodyHelper(),\n targets,\n recurrence,\n nextRun: nextRun ?? new Date(), // TODO: recurrence\n enabled,\n lastExtended,\n lastRun,\n createdAt,\n updatedAt,\n hash: '',\n };\n\n task.hash = hashTask(task);\n\n return task;\n}\n\nexport function createTaskHelperFrom(task: Task): TaskHelper {\n return createTaskHelper(\n task.name,\n task.namespaceId,\n task.extendedId,\n createTaskBodyHelperFrom(task.template),\n task.targets,\n task.recurrence,\n task.nextRun,\n task.enabled,\n task.lastExtended ?? undefined,\n task.lastRun,\n task.id,\n task.createdAt,\n task.updatedAt,\n );\n}\n\nexport function taskHelperToJSON(task: TaskHelper): Task {\n return {\n id: task.id,\n name: task.name,\n namespaceId: task.namespaceId,\n extendedId: task.extendedId,\n template: taskBodyHelperToJSON(task.template),\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n lastExtended: task.lastExtended,\n lastRun: task.lastRun,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n };\n}\n\nexport function hasTaskChanged(task: TaskHelper): boolean {\n return task.hash !== hashTask(task);\n}\n\nexport function getLayoutsOfHelpers(\n taskBody: TaskBodyHelper,\n templateBody: TemplateBodyHelper,\n): (LayoutHelper & { readonly: boolean })[] {\n const layouts = templateBody.layouts.map((l) => ({ ...l, readonly: true }));\n // eslint-disable-next-line no-restricted-syntax\n for (const { at, ...layout } of taskBody.inserts) {\n layouts.splice(at, 0, { ...layout, readonly: false });\n }\n return layouts;\n}\n\nexport {\n type TaskBodyHelper,\n addLayoutOfHelper,\n removeLayoutOfHelper,\n updateLayoutOfHelper,\n} from './body';\n","import { assignDependencies } from '~/helpers/permissions/decorator';\n\nimport { getTask, upsertTask, type Task } from '~/modules/tasks';\n\nexport * from './editor';\n\n/**\n * Change enable state of a task\n *\n * @param taskOrId Task or Task's id\n * @param enabled New state\n *\n * @returns Updated task\n */\n// eslint-disable-next-line import/prefer-default-export\nexport async function changeTaskEnableState(\n taskOrId: Omit<Task, 'template'> | string,\n enabled: boolean,\n): Promise<Task> {\n const base = await getTask(taskOrId);\n\n const task = await upsertTask({\n id: base.id,\n name: base.name,\n extendedId: base.extendedId,\n namespaceId: base.namespaceId,\n nextRun: base.nextRun,\n recurrence: base.recurrence,\n targets: base.targets,\n template: base.template,\n lastExtended: base.lastExtended,\n enabled,\n });\n\n return task;\n}\nassignDependencies(changeTaskEnableState, [getTask, upsertTask]);\n"],"names":["createTaskBodyHelper","index","dateField","inserts","filters","_a","filter","createTaskBodyHelperFrom","template","l","createTaskLayoutHelperFrom","taskBodyHelperToJSON","taskLayoutHelperToJSON","addLayoutOfHelper","body","layout","removeLayoutOfHelper","updateLayoutOfHelper","oldLayout","newLayout","hashTask","task","objectHash","createTaskHelper","name","namespaceId","extendedId","targets","recurrence","nextRun","enabled","lastExtended","lastRun","id","createdAt","updatedAt","createTaskHelperFrom","taskHelperToJSON","hasTaskChanged","getLayoutsOfHelpers","taskBody","templateBody","layouts","__spreadProps","__spreadValues","_b","at","__objRest","changeTaskEnableState","taskOrId","__async","base","getTask","upsertTask","assignDependencies"],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sources":["../../src/helpers/tasks/editor/body.ts","../../src/helpers/tasks/editor/index.ts","../../src/helpers/tasks/index.ts"],"sourcesContent":["import type { TemplateFilter } from '~/modules/templates';\nimport type { Task } from '~/modules/tasks';\n\nimport {\n createTaskLayoutHelperFrom,\n taskLayoutHelperToJSON,\n type TaskLayoutHelper,\n} from '../../templates/editor/layouts';\n\nexport interface TaskBodyHelper {\n readonly version: number;\n filters: Map<string, TemplateFilter>;\n index: string;\n dateField?: string;\n inserts: TaskLayoutHelper[];\n}\n\nexport function createTaskBodyHelper(\n index: string = '',\n dateField: string = '',\n inserts: TaskLayoutHelper[] = [],\n filters: TemplateFilter[] = [],\n): TaskBodyHelper {\n return {\n version: 2,\n dateField,\n inserts,\n filters: new Map(filters?.map((filter) => [filter.name, filter]) ?? []),\n index,\n };\n}\n\nexport function createTaskBodyHelperFrom(template: Task['template']): TaskBodyHelper {\n return createTaskBodyHelper(\n template.index,\n template.dateField,\n template.inserts.map((l) => createTaskLayoutHelperFrom(l)),\n template.filters,\n );\n}\n\nexport function taskBodyHelperToJSON(template: TaskBodyHelper): Task['template'] {\n return {\n version: template.version,\n index: template.index,\n inserts: template.inserts.map((l) => taskLayoutHelperToJSON(l)),\n dateField: template.dateField,\n filters: Array.from(template.filters.values()),\n };\n}\n\nexport function addLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n if (body.inserts.some((l) => l.id === layout.id)) {\n throw new Error(`Layout \"${layout.id}\" already exists`);\n }\n body.inserts.splice(layout.at, 0, layout);\n return body;\n}\n\nexport function removeLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n const template = body;\n template.inserts = body.inserts.filter((l) => l.id !== layout.id);\n return body;\n}\n\nexport function updateLayoutOfHelper(\n body: TaskBodyHelper,\n oldLayout: TaskLayoutHelper,\n newLayout: TaskLayoutHelper,\n): TaskBodyHelper {\n const index = body.inserts.findIndex((l) => l.id === oldLayout.id);\n if (index < 0) {\n throw new Error(`Layout \"${oldLayout.id}\" not found`);\n }\n const template = body;\n template.inserts[index] = newLayout;\n return body;\n}\n","import objectHash from 'object-hash';\n\nimport type { Task } from '~/modules/tasks';\nimport type { LastExtended, TaskRecurrence } from '~/modules/tasks/types';\n\nimport type { TemplateBodyHelper } from '../../templates/editor/body';\nimport type { LayoutHelper } from '../../templates/editor/layouts';\nimport {\n createTaskBodyHelper,\n createTaskBodyHelperFrom,\n taskBodyHelperToJSON,\n type TaskBodyHelper,\n} from './body';\n\nexport interface TaskHelper {\n readonly id: string;\n name: string;\n description: string;\n namespaceId: string;\n extendedId: string;\n template: TaskBodyHelper;\n targets: string[];\n recurrence: TaskRecurrence;\n nextRun: Date;\n enabled: boolean;\n readonly lastExtended?: LastExtended | null;\n readonly lastRun?: Date;\n readonly createdAt: Date;\n readonly updatedAt?: Date;\n readonly hash: string;\n}\n\nfunction hashTask(task: TaskHelper | Task): string {\n return objectHash({\n name: task.name,\n extendedId: task.extendedId,\n template: task.template,\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n });\n}\n\nexport function createTaskHelper(\n name: string = '',\n description: string = '',\n namespaceId: string = '',\n extendedId: string = '',\n template?: TaskBodyHelper,\n targets: string[] = [],\n recurrence: TaskRecurrence = 'DAILY',\n nextRun?: Date,\n enabled: boolean = true,\n lastExtended?: LastExtended,\n lastRun?: Date,\n id: string = '',\n createdAt: Date = new Date(),\n updatedAt?: Date,\n): TaskHelper {\n const task = {\n id,\n name,\n description,\n namespaceId,\n extendedId,\n template: template ?? createTaskBodyHelper(),\n targets,\n recurrence,\n nextRun: nextRun ?? new Date(), // TODO: recurrence\n enabled,\n lastExtended,\n lastRun,\n createdAt,\n updatedAt,\n hash: '',\n };\n\n task.hash = hashTask(task);\n\n return task;\n}\n\nexport function createTaskHelperFrom(task: Task): TaskHelper {\n return createTaskHelper(\n task.name,\n task.description,\n task.namespaceId,\n task.extendedId,\n createTaskBodyHelperFrom(task.template),\n task.targets,\n task.recurrence,\n task.nextRun,\n task.enabled,\n task.lastExtended ?? undefined,\n task.lastRun,\n task.id,\n task.createdAt,\n task.updatedAt,\n );\n}\n\nexport function taskHelperToJSON(task: TaskHelper): Task {\n return {\n id: task.id,\n name: task.name,\n description: task.description,\n namespaceId: task.namespaceId,\n extendedId: task.extendedId,\n template: taskBodyHelperToJSON(task.template),\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n lastExtended: task.lastExtended,\n lastRun: task.lastRun,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n };\n}\n\nexport function hasTaskChanged(task: TaskHelper): boolean {\n return task.hash !== hashTask(task);\n}\n\nexport function getLayoutsOfHelpers(\n taskBody: TaskBodyHelper,\n templateBody: TemplateBodyHelper,\n): (LayoutHelper & { readonly: boolean })[] {\n const layouts = templateBody.layouts.map((l) => ({ ...l, readonly: true }));\n // eslint-disable-next-line no-restricted-syntax\n for (const { at, ...layout } of taskBody.inserts) {\n layouts.splice(at, 0, { ...layout, readonly: false });\n }\n return layouts;\n}\n\nexport {\n type TaskBodyHelper,\n addLayoutOfHelper,\n removeLayoutOfHelper,\n updateLayoutOfHelper,\n} from './body';\n","import { assignDependencies } from '~/helpers/permissions/decorator';\n\nimport { getTask, upsertTask, type Task } from '~/modules/tasks';\n\nexport * from './editor';\n\n/**\n * Change enable state of a task\n *\n * @param taskOrId Task or Task's id\n * @param enabled New state\n *\n * @returns Updated task\n */\n// eslint-disable-next-line import/prefer-default-export\nexport async function changeTaskEnableState(\n taskOrId: Omit<Task, 'template'> | string,\n enabled: boolean,\n): Promise<Task> {\n const base = await getTask(taskOrId);\n\n const task = await upsertTask({\n id: base.id,\n name: base.name,\n description: base.description,\n extendedId: base.extendedId,\n namespaceId: base.namespaceId,\n nextRun: base.nextRun,\n recurrence: base.recurrence,\n targets: base.targets,\n template: base.template,\n lastExtended: base.lastExtended,\n enabled,\n });\n\n return task;\n}\nassignDependencies(changeTaskEnableState, [getTask, upsertTask]);\n"],"names":["createTaskBodyHelper","index","dateField","inserts","filters","_a","filter","createTaskBodyHelperFrom","template","l","createTaskLayoutHelperFrom","taskBodyHelperToJSON","taskLayoutHelperToJSON","addLayoutOfHelper","body","layout","removeLayoutOfHelper","updateLayoutOfHelper","oldLayout","newLayout","hashTask","task","objectHash","createTaskHelper","name","description","namespaceId","extendedId","targets","recurrence","nextRun","enabled","lastExtended","lastRun","id","createdAt","updatedAt","createTaskHelperFrom","taskHelperToJSON","hasTaskChanged","getLayoutsOfHelpers","taskBody","templateBody","layouts","__spreadProps","__spreadValues","_b","at","__objRest","changeTaskEnableState","taskOrId","__async","base","getTask","upsertTask","assignDependencies"],"mappings":"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"}
@@ -1,89 +1,89 @@
1
- var O = Object.defineProperty, R = Object.defineProperties;
2
- var v = Object.getOwnPropertyDescriptors;
3
- var c = Object.getOwnPropertySymbols;
1
+ var R = Object.defineProperty, v = Object.defineProperties;
2
+ var F = Object.getOwnPropertyDescriptors;
3
+ var u = Object.getOwnPropertySymbols;
4
4
  var x = Object.prototype.hasOwnProperty, h = Object.prototype.propertyIsEnumerable;
5
- var f = (e, n, r) => n in e ? O(e, n, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[n] = r, p = (e, n) => {
6
- for (var r in n || (n = {}))
7
- x.call(n, r) && f(e, r, n[r]);
8
- if (c)
9
- for (var r of c(n))
10
- h.call(n, r) && f(e, r, n[r]);
5
+ var f = (e, r, n) => r in e ? R(e, r, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[r] = n, l = (e, r) => {
6
+ for (var n in r || (r = {}))
7
+ x.call(r, n) && f(e, n, r[n]);
8
+ if (u)
9
+ for (var n of u(r))
10
+ h.call(r, n) && f(e, n, r[n]);
11
11
  return e;
12
- }, m = (e, n) => R(e, v(n));
13
- var I = (e, n) => {
14
- var r = {};
12
+ }, m = (e, r) => v(e, F(r));
13
+ var I = (e, r) => {
14
+ var n = {};
15
15
  for (var t in e)
16
- x.call(e, t) && n.indexOf(t) < 0 && (r[t] = e[t]);
17
- if (e != null && c)
18
- for (var t of c(e))
19
- n.indexOf(t) < 0 && h.call(e, t) && (r[t] = e[t]);
20
- return r;
16
+ x.call(e, t) && r.indexOf(t) < 0 && (n[t] = e[t]);
17
+ if (e != null && u)
18
+ for (var t of u(e))
19
+ r.indexOf(t) < 0 && h.call(e, t) && (n[t] = e[t]);
20
+ return n;
21
21
  };
22
- var H = (e, n, r) => new Promise((t, a) => {
23
- var d = (s) => {
22
+ var H = (e, r, n) => new Promise((t, d) => {
23
+ var a = (i) => {
24
24
  try {
25
- o(r.next(s));
26
- } catch (u) {
27
- a(u);
25
+ s(n.next(i));
26
+ } catch (c) {
27
+ d(c);
28
28
  }
29
- }, i = (s) => {
29
+ }, o = (i) => {
30
30
  try {
31
- o(r.throw(s));
32
- } catch (u) {
33
- a(u);
31
+ s(n.throw(i));
32
+ } catch (c) {
33
+ d(c);
34
34
  }
35
- }, o = (s) => s.done ? t(s.value) : Promise.resolve(s.value).then(d, i);
36
- o((r = r.apply(e, n)).next());
35
+ }, s = (i) => i.done ? t(i.value) : Promise.resolve(i.value).then(a, o);
36
+ s((n = n.apply(e, r)).next());
37
37
  });
38
- import { b as F } from "../decorator-DBkj--6g.mjs";
38
+ import { b as D } from "../decorator-DBkj--6g.mjs";
39
39
  import { a as T, u as g } from "../methods-DOB4Ry8E.mjs";
40
- import D from "object-hash";
41
- import { a as S, t as b } from "../tasks-1x680qAf.mjs";
42
- function w(e = "", n = "", r = [], t = []) {
43
- var a;
40
+ import S from "object-hash";
41
+ import { a as b, t as B } from "../tasks-1x680qAf.mjs";
42
+ function w(e = "", r = "", n = [], t = []) {
43
+ var d;
44
44
  return {
45
45
  version: 2,
46
- dateField: n,
47
- inserts: r,
48
- filters: new Map((a = t == null ? void 0 : t.map((d) => [d.name, d])) != null ? a : []),
46
+ dateField: r,
47
+ inserts: n,
48
+ filters: new Map((d = t == null ? void 0 : t.map((a) => [a.name, a])) != null ? d : []),
49
49
  index: e
50
50
  };
51
51
  }
52
- function B(e) {
52
+ function J(e) {
53
53
  return w(
54
54
  e.index,
55
55
  e.dateField,
56
- e.inserts.map((n) => S(n)),
56
+ e.inserts.map((r) => b(r)),
57
57
  e.filters
58
58
  );
59
59
  }
60
- function J(e) {
60
+ function N(e) {
61
61
  return {
62
62
  version: e.version,
63
63
  index: e.index,
64
- inserts: e.inserts.map((n) => b(n)),
64
+ inserts: e.inserts.map((r) => B(r)),
65
65
  dateField: e.dateField,
66
66
  filters: Array.from(e.filters.values())
67
67
  };
68
68
  }
69
- function z(e, n) {
70
- if (e.inserts.some((r) => r.id === n.id))
71
- throw new Error(`Layout "${n.id}" already exists`);
72
- return e.inserts.splice(n.at, 0, n), e;
69
+ function G(e, r) {
70
+ if (e.inserts.some((n) => n.id === r.id))
71
+ throw new Error(`Layout "${r.id}" already exists`);
72
+ return e.inserts.splice(r.at, 0, r), e;
73
73
  }
74
- function G(e, n) {
75
- const r = e;
76
- return r.inserts = e.inserts.filter((t) => t.id !== n.id), e;
74
+ function K(e, r) {
75
+ const n = e;
76
+ return n.inserts = e.inserts.filter((t) => t.id !== r.id), e;
77
77
  }
78
- function K(e, n, r) {
79
- const t = e.inserts.findIndex((d) => d.id === n.id);
78
+ function P(e, r, n) {
79
+ const t = e.inserts.findIndex((a) => a.id === r.id);
80
80
  if (t < 0)
81
- throw new Error(`Layout "${n.id}" not found`);
82
- const a = e;
83
- return a.inserts[t] = r, e;
81
+ throw new Error(`Layout "${r.id}" not found`);
82
+ const d = e;
83
+ return d.inserts[t] = n, e;
84
84
  }
85
85
  function y(e) {
86
- return D({
86
+ return S({
87
87
  name: e.name,
88
88
  extendedId: e.extendedId,
89
89
  template: e.template,
@@ -93,51 +93,54 @@ function y(e) {
93
93
  enabled: e.enabled
94
94
  });
95
95
  }
96
- function N(e = "", n = "", r = "", t, a = [], d = "DAILY", i, o = !0, s, u, A = "", E = /* @__PURE__ */ new Date(), L) {
97
- const l = {
98
- id: A,
96
+ function $(e = "", r = "", n = "", t = "", d, a = [], o = "DAILY", s, i = !0, c, A, E = "", L = /* @__PURE__ */ new Date(), O) {
97
+ const p = {
98
+ id: E,
99
99
  name: e,
100
+ description: r,
100
101
  namespaceId: n,
101
- extendedId: r,
102
- template: t != null ? t : w(),
102
+ extendedId: t,
103
+ template: d != null ? d : w(),
103
104
  targets: a,
104
- recurrence: d,
105
- nextRun: i != null ? i : /* @__PURE__ */ new Date(),
105
+ recurrence: o,
106
+ nextRun: s != null ? s : /* @__PURE__ */ new Date(),
106
107
  // TODO: recurrence
107
- enabled: o,
108
- lastExtended: s,
109
- lastRun: u,
110
- createdAt: E,
111
- updatedAt: L,
108
+ enabled: i,
109
+ lastExtended: c,
110
+ lastRun: A,
111
+ createdAt: L,
112
+ updatedAt: O,
112
113
  hash: ""
113
114
  };
114
- return l.hash = y(l), l;
115
+ return p.hash = y(p), p;
115
116
  }
116
- function P(e) {
117
- var n;
118
- return N(
117
+ function Q(e) {
118
+ var r;
119
+ return $(
119
120
  e.name,
121
+ e.description,
120
122
  e.namespaceId,
121
123
  e.extendedId,
122
- B(e.template),
124
+ J(e.template),
123
125
  e.targets,
124
126
  e.recurrence,
125
127
  e.nextRun,
126
128
  e.enabled,
127
- (n = e.lastExtended) != null ? n : void 0,
129
+ (r = e.lastExtended) != null ? r : void 0,
128
130
  e.lastRun,
129
131
  e.id,
130
132
  e.createdAt,
131
133
  e.updatedAt
132
134
  );
133
135
  }
134
- function Q(e) {
136
+ function U(e) {
135
137
  return {
136
138
  id: e.id,
137
139
  name: e.name,
140
+ description: e.description,
138
141
  namespaceId: e.namespaceId,
139
142
  extendedId: e.extendedId,
140
- template: J(e.template),
143
+ template: N(e.template),
141
144
  targets: e.targets,
142
145
  recurrence: e.recurrence,
143
146
  nextRun: e.nextRun,
@@ -148,44 +151,45 @@ function Q(e) {
148
151
  updatedAt: e.updatedAt
149
152
  };
150
153
  }
151
- function U(e) {
154
+ function V(e) {
152
155
  return e.hash !== y(e);
153
156
  }
154
- function V(e, n) {
155
- const r = n.layouts.map((d) => m(p({}, d), { readonly: !0 }));
157
+ function W(e, r) {
158
+ const n = r.layouts.map((a) => m(l({}, a), { readonly: !0 }));
156
159
  for (const t of e.inserts) {
157
- const a = t, { at: d } = a, i = I(a, ["at"]);
158
- r.splice(d, 0, m(p({}, i), { readonly: !1 }));
160
+ const d = t, { at: a } = d, o = I(d, ["at"]);
161
+ n.splice(a, 0, m(l({}, o), { readonly: !1 }));
159
162
  }
160
- return r;
163
+ return n;
161
164
  }
162
- function $(e, n) {
165
+ function j(e, r) {
163
166
  return H(this, null, function* () {
164
- const r = yield T(e);
167
+ const n = yield T(e);
165
168
  return yield g({
166
- id: r.id,
167
- name: r.name,
168
- extendedId: r.extendedId,
169
- namespaceId: r.namespaceId,
170
- nextRun: r.nextRun,
171
- recurrence: r.recurrence,
172
- targets: r.targets,
173
- template: r.template,
174
- lastExtended: r.lastExtended,
175
- enabled: n
169
+ id: n.id,
170
+ name: n.name,
171
+ description: n.description,
172
+ extendedId: n.extendedId,
173
+ namespaceId: n.namespaceId,
174
+ nextRun: n.nextRun,
175
+ recurrence: n.recurrence,
176
+ targets: n.targets,
177
+ template: n.template,
178
+ lastExtended: n.lastExtended,
179
+ enabled: r
176
180
  });
177
181
  });
178
182
  }
179
- F($, [T, g]);
183
+ D(j, [T, g]);
180
184
  export {
181
- z as addLayoutOfHelper,
182
- $ as changeTaskEnableState,
183
- N as createTaskHelper,
184
- P as createTaskHelperFrom,
185
- V as getLayoutsOfHelpers,
186
- U as hasTaskChanged,
187
- G as removeLayoutOfHelper,
188
- Q as taskHelperToJSON,
189
- K as updateLayoutOfHelper
185
+ G as addLayoutOfHelper,
186
+ j as changeTaskEnableState,
187
+ $ as createTaskHelper,
188
+ Q as createTaskHelperFrom,
189
+ W as getLayoutsOfHelpers,
190
+ V as hasTaskChanged,
191
+ K as removeLayoutOfHelper,
192
+ U as taskHelperToJSON,
193
+ P as updateLayoutOfHelper
190
194
  };
191
195
  //# sourceMappingURL=tasks.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.mjs","sources":["../../src/helpers/tasks/editor/body.ts","../../src/helpers/tasks/editor/index.ts","../../src/helpers/tasks/index.ts"],"sourcesContent":["import type { TemplateFilter } from '~/modules/templates';\nimport type { Task } from '~/modules/tasks';\n\nimport {\n createTaskLayoutHelperFrom,\n taskLayoutHelperToJSON,\n type TaskLayoutHelper,\n} from '../../templates/editor/layouts';\n\nexport interface TaskBodyHelper {\n readonly version: number;\n filters: Map<string, TemplateFilter>;\n index: string;\n dateField?: string;\n inserts: TaskLayoutHelper[];\n}\n\nexport function createTaskBodyHelper(\n index: string = '',\n dateField: string = '',\n inserts: TaskLayoutHelper[] = [],\n filters: TemplateFilter[] = [],\n): TaskBodyHelper {\n return {\n version: 2,\n dateField,\n inserts,\n filters: new Map(filters?.map((filter) => [filter.name, filter]) ?? []),\n index,\n };\n}\n\nexport function createTaskBodyHelperFrom(template: Task['template']): TaskBodyHelper {\n return createTaskBodyHelper(\n template.index,\n template.dateField,\n template.inserts.map((l) => createTaskLayoutHelperFrom(l)),\n template.filters,\n );\n}\n\nexport function taskBodyHelperToJSON(template: TaskBodyHelper): Task['template'] {\n return {\n version: template.version,\n index: template.index,\n inserts: template.inserts.map((l) => taskLayoutHelperToJSON(l)),\n dateField: template.dateField,\n filters: Array.from(template.filters.values()),\n };\n}\n\nexport function addLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n if (body.inserts.some((l) => l.id === layout.id)) {\n throw new Error(`Layout \"${layout.id}\" already exists`);\n }\n body.inserts.splice(layout.at, 0, layout);\n return body;\n}\n\nexport function removeLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n const template = body;\n template.inserts = body.inserts.filter((l) => l.id !== layout.id);\n return body;\n}\n\nexport function updateLayoutOfHelper(\n body: TaskBodyHelper,\n oldLayout: TaskLayoutHelper,\n newLayout: TaskLayoutHelper,\n): TaskBodyHelper {\n const index = body.inserts.findIndex((l) => l.id === oldLayout.id);\n if (index < 0) {\n throw new Error(`Layout \"${oldLayout.id}\" not found`);\n }\n const template = body;\n template.inserts[index] = newLayout;\n return body;\n}\n","import objectHash from 'object-hash';\n\nimport type { Task } from '~/modules/tasks';\nimport type { LastExtended, TaskRecurrence } from '~/modules/tasks/types';\n\nimport type { TemplateBodyHelper } from '../../templates/editor/body';\nimport type { LayoutHelper } from '../../templates/editor/layouts';\nimport {\n createTaskBodyHelper,\n createTaskBodyHelperFrom,\n taskBodyHelperToJSON,\n type TaskBodyHelper,\n} from './body';\n\nexport interface TaskHelper {\n readonly id: string;\n name: string;\n namespaceId: string;\n extendedId: string;\n template: TaskBodyHelper;\n targets: string[];\n recurrence: TaskRecurrence;\n nextRun: Date;\n enabled: boolean;\n readonly lastExtended?: LastExtended | null;\n readonly lastRun?: Date;\n readonly createdAt: Date;\n readonly updatedAt?: Date;\n readonly hash: string;\n}\n\nfunction hashTask(task: TaskHelper | Task): string {\n return objectHash({\n name: task.name,\n extendedId: task.extendedId,\n template: task.template,\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n });\n}\n\nexport function createTaskHelper(\n name: string = '',\n namespaceId: string = '',\n extendedId: string = '',\n template?: TaskBodyHelper,\n targets: string[] = [],\n recurrence: TaskRecurrence = 'DAILY',\n nextRun?: Date,\n enabled: boolean = true,\n lastExtended?: LastExtended,\n lastRun?: Date,\n id: string = '',\n createdAt: Date = new Date(),\n updatedAt?: Date,\n): TaskHelper {\n const task = {\n id,\n name,\n namespaceId,\n extendedId,\n template: template ?? createTaskBodyHelper(),\n targets,\n recurrence,\n nextRun: nextRun ?? new Date(), // TODO: recurrence\n enabled,\n lastExtended,\n lastRun,\n createdAt,\n updatedAt,\n hash: '',\n };\n\n task.hash = hashTask(task);\n\n return task;\n}\n\nexport function createTaskHelperFrom(task: Task): TaskHelper {\n return createTaskHelper(\n task.name,\n task.namespaceId,\n task.extendedId,\n createTaskBodyHelperFrom(task.template),\n task.targets,\n task.recurrence,\n task.nextRun,\n task.enabled,\n task.lastExtended ?? undefined,\n task.lastRun,\n task.id,\n task.createdAt,\n task.updatedAt,\n );\n}\n\nexport function taskHelperToJSON(task: TaskHelper): Task {\n return {\n id: task.id,\n name: task.name,\n namespaceId: task.namespaceId,\n extendedId: task.extendedId,\n template: taskBodyHelperToJSON(task.template),\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n lastExtended: task.lastExtended,\n lastRun: task.lastRun,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n };\n}\n\nexport function hasTaskChanged(task: TaskHelper): boolean {\n return task.hash !== hashTask(task);\n}\n\nexport function getLayoutsOfHelpers(\n taskBody: TaskBodyHelper,\n templateBody: TemplateBodyHelper,\n): (LayoutHelper & { readonly: boolean })[] {\n const layouts = templateBody.layouts.map((l) => ({ ...l, readonly: true }));\n // eslint-disable-next-line no-restricted-syntax\n for (const { at, ...layout } of taskBody.inserts) {\n layouts.splice(at, 0, { ...layout, readonly: false });\n }\n return layouts;\n}\n\nexport {\n type TaskBodyHelper,\n addLayoutOfHelper,\n removeLayoutOfHelper,\n updateLayoutOfHelper,\n} from './body';\n","import { assignDependencies } from '~/helpers/permissions/decorator';\n\nimport { getTask, upsertTask, type Task } from '~/modules/tasks';\n\nexport * from './editor';\n\n/**\n * Change enable state of a task\n *\n * @param taskOrId Task or Task's id\n * @param enabled New state\n *\n * @returns Updated task\n */\n// eslint-disable-next-line import/prefer-default-export\nexport async function changeTaskEnableState(\n taskOrId: Omit<Task, 'template'> | string,\n enabled: boolean,\n): Promise<Task> {\n const base = await getTask(taskOrId);\n\n const task = await upsertTask({\n id: base.id,\n name: base.name,\n extendedId: base.extendedId,\n namespaceId: base.namespaceId,\n nextRun: base.nextRun,\n recurrence: base.recurrence,\n targets: base.targets,\n template: base.template,\n lastExtended: base.lastExtended,\n enabled,\n });\n\n return task;\n}\nassignDependencies(changeTaskEnableState, [getTask, upsertTask]);\n"],"names":["createTaskBodyHelper","index","dateField","inserts","filters","_a","filter","createTaskBodyHelperFrom","template","l","createTaskLayoutHelperFrom","taskBodyHelperToJSON","taskLayoutHelperToJSON","addLayoutOfHelper","body","layout","removeLayoutOfHelper","updateLayoutOfHelper","oldLayout","newLayout","hashTask","task","objectHash","createTaskHelper","name","namespaceId","extendedId","targets","recurrence","nextRun","enabled","lastExtended","lastRun","id","createdAt","updatedAt","createTaskHelperFrom","taskHelperToJSON","hasTaskChanged","getLayoutsOfHelpers","taskBody","templateBody","layouts","__spreadProps","__spreadValues","_b","at","__objRest","changeTaskEnableState","taskOrId","__async","base","getTask","upsertTask","assignDependencies"],"mappings":"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"}
1
+ {"version":3,"file":"tasks.mjs","sources":["../../src/helpers/tasks/editor/body.ts","../../src/helpers/tasks/editor/index.ts","../../src/helpers/tasks/index.ts"],"sourcesContent":["import type { TemplateFilter } from '~/modules/templates';\nimport type { Task } from '~/modules/tasks';\n\nimport {\n createTaskLayoutHelperFrom,\n taskLayoutHelperToJSON,\n type TaskLayoutHelper,\n} from '../../templates/editor/layouts';\n\nexport interface TaskBodyHelper {\n readonly version: number;\n filters: Map<string, TemplateFilter>;\n index: string;\n dateField?: string;\n inserts: TaskLayoutHelper[];\n}\n\nexport function createTaskBodyHelper(\n index: string = '',\n dateField: string = '',\n inserts: TaskLayoutHelper[] = [],\n filters: TemplateFilter[] = [],\n): TaskBodyHelper {\n return {\n version: 2,\n dateField,\n inserts,\n filters: new Map(filters?.map((filter) => [filter.name, filter]) ?? []),\n index,\n };\n}\n\nexport function createTaskBodyHelperFrom(template: Task['template']): TaskBodyHelper {\n return createTaskBodyHelper(\n template.index,\n template.dateField,\n template.inserts.map((l) => createTaskLayoutHelperFrom(l)),\n template.filters,\n );\n}\n\nexport function taskBodyHelperToJSON(template: TaskBodyHelper): Task['template'] {\n return {\n version: template.version,\n index: template.index,\n inserts: template.inserts.map((l) => taskLayoutHelperToJSON(l)),\n dateField: template.dateField,\n filters: Array.from(template.filters.values()),\n };\n}\n\nexport function addLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n if (body.inserts.some((l) => l.id === layout.id)) {\n throw new Error(`Layout \"${layout.id}\" already exists`);\n }\n body.inserts.splice(layout.at, 0, layout);\n return body;\n}\n\nexport function removeLayoutOfHelper(\n body: TaskBodyHelper,\n layout: TaskLayoutHelper,\n): TaskBodyHelper {\n const template = body;\n template.inserts = body.inserts.filter((l) => l.id !== layout.id);\n return body;\n}\n\nexport function updateLayoutOfHelper(\n body: TaskBodyHelper,\n oldLayout: TaskLayoutHelper,\n newLayout: TaskLayoutHelper,\n): TaskBodyHelper {\n const index = body.inserts.findIndex((l) => l.id === oldLayout.id);\n if (index < 0) {\n throw new Error(`Layout \"${oldLayout.id}\" not found`);\n }\n const template = body;\n template.inserts[index] = newLayout;\n return body;\n}\n","import objectHash from 'object-hash';\n\nimport type { Task } from '~/modules/tasks';\nimport type { LastExtended, TaskRecurrence } from '~/modules/tasks/types';\n\nimport type { TemplateBodyHelper } from '../../templates/editor/body';\nimport type { LayoutHelper } from '../../templates/editor/layouts';\nimport {\n createTaskBodyHelper,\n createTaskBodyHelperFrom,\n taskBodyHelperToJSON,\n type TaskBodyHelper,\n} from './body';\n\nexport interface TaskHelper {\n readonly id: string;\n name: string;\n description: string;\n namespaceId: string;\n extendedId: string;\n template: TaskBodyHelper;\n targets: string[];\n recurrence: TaskRecurrence;\n nextRun: Date;\n enabled: boolean;\n readonly lastExtended?: LastExtended | null;\n readonly lastRun?: Date;\n readonly createdAt: Date;\n readonly updatedAt?: Date;\n readonly hash: string;\n}\n\nfunction hashTask(task: TaskHelper | Task): string {\n return objectHash({\n name: task.name,\n extendedId: task.extendedId,\n template: task.template,\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n });\n}\n\nexport function createTaskHelper(\n name: string = '',\n description: string = '',\n namespaceId: string = '',\n extendedId: string = '',\n template?: TaskBodyHelper,\n targets: string[] = [],\n recurrence: TaskRecurrence = 'DAILY',\n nextRun?: Date,\n enabled: boolean = true,\n lastExtended?: LastExtended,\n lastRun?: Date,\n id: string = '',\n createdAt: Date = new Date(),\n updatedAt?: Date,\n): TaskHelper {\n const task = {\n id,\n name,\n description,\n namespaceId,\n extendedId,\n template: template ?? createTaskBodyHelper(),\n targets,\n recurrence,\n nextRun: nextRun ?? new Date(), // TODO: recurrence\n enabled,\n lastExtended,\n lastRun,\n createdAt,\n updatedAt,\n hash: '',\n };\n\n task.hash = hashTask(task);\n\n return task;\n}\n\nexport function createTaskHelperFrom(task: Task): TaskHelper {\n return createTaskHelper(\n task.name,\n task.description,\n task.namespaceId,\n task.extendedId,\n createTaskBodyHelperFrom(task.template),\n task.targets,\n task.recurrence,\n task.nextRun,\n task.enabled,\n task.lastExtended ?? undefined,\n task.lastRun,\n task.id,\n task.createdAt,\n task.updatedAt,\n );\n}\n\nexport function taskHelperToJSON(task: TaskHelper): Task {\n return {\n id: task.id,\n name: task.name,\n description: task.description,\n namespaceId: task.namespaceId,\n extendedId: task.extendedId,\n template: taskBodyHelperToJSON(task.template),\n targets: task.targets,\n recurrence: task.recurrence,\n nextRun: task.nextRun,\n enabled: task.enabled,\n lastExtended: task.lastExtended,\n lastRun: task.lastRun,\n createdAt: task.createdAt,\n updatedAt: task.updatedAt,\n };\n}\n\nexport function hasTaskChanged(task: TaskHelper): boolean {\n return task.hash !== hashTask(task);\n}\n\nexport function getLayoutsOfHelpers(\n taskBody: TaskBodyHelper,\n templateBody: TemplateBodyHelper,\n): (LayoutHelper & { readonly: boolean })[] {\n const layouts = templateBody.layouts.map((l) => ({ ...l, readonly: true }));\n // eslint-disable-next-line no-restricted-syntax\n for (const { at, ...layout } of taskBody.inserts) {\n layouts.splice(at, 0, { ...layout, readonly: false });\n }\n return layouts;\n}\n\nexport {\n type TaskBodyHelper,\n addLayoutOfHelper,\n removeLayoutOfHelper,\n updateLayoutOfHelper,\n} from './body';\n","import { assignDependencies } from '~/helpers/permissions/decorator';\n\nimport { getTask, upsertTask, type Task } from '~/modules/tasks';\n\nexport * from './editor';\n\n/**\n * Change enable state of a task\n *\n * @param taskOrId Task or Task's id\n * @param enabled New state\n *\n * @returns Updated task\n */\n// eslint-disable-next-line import/prefer-default-export\nexport async function changeTaskEnableState(\n taskOrId: Omit<Task, 'template'> | string,\n enabled: boolean,\n): Promise<Task> {\n const base = await getTask(taskOrId);\n\n const task = await upsertTask({\n id: base.id,\n name: base.name,\n description: base.description,\n extendedId: base.extendedId,\n namespaceId: base.namespaceId,\n nextRun: base.nextRun,\n recurrence: base.recurrence,\n targets: base.targets,\n template: base.template,\n lastExtended: base.lastExtended,\n enabled,\n });\n\n return task;\n}\nassignDependencies(changeTaskEnableState, [getTask, upsertTask]);\n"],"names":["createTaskBodyHelper","index","dateField","inserts","filters","_a","filter","createTaskBodyHelperFrom","template","l","createTaskLayoutHelperFrom","taskBodyHelperToJSON","taskLayoutHelperToJSON","addLayoutOfHelper","body","layout","removeLayoutOfHelper","updateLayoutOfHelper","oldLayout","newLayout","hashTask","task","objectHash","createTaskHelper","name","description","namespaceId","extendedId","targets","recurrence","nextRun","enabled","lastExtended","lastRun","id","createdAt","updatedAt","createTaskHelperFrom","taskHelperToJSON","hasTaskChanged","getLayoutsOfHelpers","taskBody","templateBody","layouts","__spreadProps","__spreadValues","_b","at","__objRest","changeTaskEnableState","taskOrId","__async","base","getTask","upsertTask","assignDependencies"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { A as ApiRequestOptions, S as SdkPaginated } from './api-C_g0ldUn.js';
2
2
  import { c as ReportPeriod } from './types-jXqGnCKQ.js';
3
- import { T as Task } from './types-y2f9Jb4M.js';
3
+ import { T as Task } from './types-C4AhJDkW.js';
4
4
 
5
5
  interface GenerationData {
6
6
  task: Omit<Task, 'namespace' | 'extends'>;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { A as ApiRequestOptions, S as SdkPaginated } from './api-C_g0ldUn.js';
2
2
 
3
- var version = "2.0.0-beta.1";
3
+ var version = "2.0.0-rc.1";
4
4
 
5
5
  type ApiAuthOptions = {
6
6
  token?: string;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./fetch-Hd-ajPIl.js"),r="2.0.0-beta.1";exports.prepareClient=e.prepareClient;exports.version=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./fetch-Hd-ajPIl.js"),r="2.0.0-rc.1";exports.prepareClient=e.prepareClient;exports.version=r;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { p } from "./fetch-xZFTa3q1.mjs";
2
- const e = "2.0.0-beta.1";
2
+ const r = "2.0.0-rc.1";
3
3
  export {
4
4
  p as prepareClient,
5
- e as version
5
+ r as version
6
6
  };
7
7
  //# sourceMappingURL=index.mjs.map
package/dist/queues.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { G as GenerationData, I as InputQueue, J as Job, b as JobStatus, M as MailData, a as MailError, Q as Queue, g as getAllQueues, d as getJob, c as getQueue, e as getQueueJobs, r as retryJob, u as updateQueue } from './index-CWHjM0a3.js';
1
+ export { G as GenerationData, I as InputQueue, J as Job, b as JobStatus, M as MailData, a as MailError, Q as Queue, g as getAllQueues, d as getJob, c as getQueue, e as getQueueJobs, r as retryJob, u as updateQueue } from './index-6ma-WCUD.js';
2
2
  import './api-C_g0ldUn.js';
3
3
  import './types-jXqGnCKQ.js';
4
- import './types-y2f9Jb4M.js';
4
+ import './types-C4AhJDkW.js';
5
5
  import './namespaces.js';
6
6
  import './types-DcoMmjs3.js';
package/dist/reports.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { T as Task } from './types-y2f9Jb4M.js';
1
+ import { T as Task } from './types-C4AhJDkW.js';
2
2
  import { R as ReportResult, a as ReportFiles } from './types-jXqGnCKQ.js';
3
3
  export { e as ReportDetails, b as ReportErrorCause, c as ReportPeriod, d as ReportStats } from './types-jXqGnCKQ.js';
4
4
  import './namespaces.js';
@@ -1,5 +1,5 @@
1
1
  import { A as ApiRequestOptions, S as SdkPaginated } from './api-C_g0ldUn.js';
2
- import { T as Task } from './types-y2f9Jb4M.js';
2
+ import { T as Task } from './types-C4AhJDkW.js';
3
3
  import './namespaces.js';
4
4
  import './types-DcoMmjs3.js';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { A as ApiRequestOptions, S as SdkPaginated } from './api-C_g0ldUn.js';
2
- import { T as Task } from './types-y2f9Jb4M.js';
3
- import { T as TaskPreset, I as InputTaskPreset, A as AdditionalDataForPreset } from './types-CpDGJRQw.js';
2
+ import { T as Task } from './types-C4AhJDkW.js';
3
+ import { T as TaskPreset, I as InputTaskPreset, A as AdditionalDataForPreset } from './types-BGlpjxH9.js';
4
4
  import './namespaces.js';
5
5
  import './types-DcoMmjs3.js';
6
6
 
@@ -1,4 +1,4 @@
1
- import { b as TaskBodyLayout } from './types-y2f9Jb4M.js';
1
+ import { b as TaskBodyLayout } from './types-C4AhJDkW.js';
2
2
  import { AnyFigureHelper } from './helpers/figures.js';
3
3
  import { L as LayoutHelper } from './templates-BgRTZc5c.js';
4
4
 
package/dist/tasks.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { A as ApiRequestOptions, S as SdkPaginated } from './api-C_g0ldUn.js';
2
- import { T as Task, I as InputTask } from './types-y2f9Jb4M.js';
3
- export { L as LastExtended, c as TaskBody, b as TaskBodyLayout, a as TaskRecurrence } from './types-y2f9Jb4M.js';
2
+ import { T as Task, I as InputTask } from './types-C4AhJDkW.js';
3
+ export { L as LastExtended, c as TaskBody, b as TaskBodyLayout, a as TaskRecurrence } from './types-C4AhJDkW.js';
4
4
  import './namespaces.js';
5
5
  import './types-DcoMmjs3.js';
6
6
 
@@ -1,5 +1,5 @@
1
1
  import { f as TemplateTag, c as TemplateFilter } from './types-DcoMmjs3.js';
2
- import { a as TaskRecurrence } from './types-y2f9Jb4M.js';
2
+ import { a as TaskRecurrence } from './types-C4AhJDkW.js';
3
3
 
4
4
  interface TaskPreset {
5
5
  /** Preset ID */
@@ -35,6 +35,8 @@ type InputTaskPreset = Omit<TaskPreset, 'id' | 'createdAt' | 'updatedAt' | 'temp
35
35
  interface AdditionalDataForPreset {
36
36
  /** Task name */
37
37
  name: string;
38
+ /** Task description */
39
+ description: string;
38
40
  /** Namespace ID of the task */
39
41
  namespaceId: string;
40
42
  /** Elastic index to fetch data from */
@@ -37,6 +37,8 @@ interface Task {
37
37
  id: string;
38
38
  /** Task name */
39
39
  name: string;
40
+ /** Task description */
41
+ description: string;
40
42
  /** Namespace ID */
41
43
  namespaceId: string;
42
44
  /** Extended template ID */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ezpaarse-project/ezreeport-sdk-js",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-rc.1",
4
4
  "description": "JS SDK to communicate with ezReeport API",
5
5
  "homepage": "https://github.com/ezpaarse-project/ezreeport#readme",
6
6
  "bugs": {