@ezpaarse-project/ezreeport-sdk-js 2.2.0-beta.1 → 2.2.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/_commonjsHelpers-C6fGbg64.mjs +7 -0
  2. package/dist/_commonjsHelpers-C6fGbg64.mjs.map +1 -0
  3. package/dist/_commonjsHelpers-DwGv2jUC.js +2 -0
  4. package/dist/_commonjsHelpers-DwGv2jUC.js.map +1 -0
  5. package/dist/auth.js +1 -1
  6. package/dist/auth.mjs +1 -1
  7. package/dist/crons.js +1 -1
  8. package/dist/crons.mjs +1 -1
  9. package/dist/elastic.js +1 -1
  10. package/dist/elastic.mjs +1 -1
  11. package/dist/fetch-CLjbXGAV.js +2 -0
  12. package/dist/fetch-CLjbXGAV.js.map +1 -0
  13. package/dist/fetch-kzLaYwl7.mjs +47 -0
  14. package/dist/fetch-kzLaYwl7.mjs.map +1 -0
  15. package/dist/generations.js +1 -1
  16. package/dist/generations.mjs +1 -1
  17. package/dist/health.js +1 -1
  18. package/dist/health.mjs +1 -1
  19. package/dist/helpers/figures.js +1 -1
  20. package/dist/helpers/figures.mjs +4 -4
  21. package/dist/helpers/generations.js +1 -1
  22. package/dist/helpers/generations.js.map +1 -1
  23. package/dist/helpers/generations.mjs +41 -43
  24. package/dist/helpers/generations.mjs.map +1 -1
  25. package/dist/helpers/layouts.js +1 -1
  26. package/dist/helpers/layouts.mjs +3 -3
  27. package/dist/helpers/permissions.js +1 -1
  28. package/dist/helpers/permissions.mjs +1 -1
  29. package/dist/helpers/task-presets.js +1 -1
  30. package/dist/helpers/task-presets.mjs +1 -1
  31. package/dist/helpers/tasks.js +1 -1
  32. package/dist/helpers/tasks.js.map +1 -1
  33. package/dist/helpers/tasks.mjs +13 -13
  34. package/dist/helpers/templates.js +1 -1
  35. package/dist/helpers/templates.js.map +1 -1
  36. package/dist/helpers/templates.mjs +3 -3
  37. package/dist/index-CVa-i8Jy.js +7 -0
  38. package/dist/index-CVa-i8Jy.js.map +1 -0
  39. package/dist/index-CqG3FOrT.mjs +1113 -0
  40. package/dist/index-CqG3FOrT.mjs.map +1 -0
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +1 -1
  43. package/dist/index.mjs +2 -2
  44. package/dist/{methods-eIVAWN5f.js → methods--DanahvX.js} +2 -2
  45. package/dist/{methods-eIVAWN5f.js.map → methods--DanahvX.js.map} +1 -1
  46. package/dist/{methods-CBlHpa4P.js → methods-B7KR7IhF.js} +2 -2
  47. package/dist/{methods-CBlHpa4P.js.map → methods-B7KR7IhF.js.map} +1 -1
  48. package/dist/{methods-Crgt0cEf.mjs → methods-BEqx06jZ.mjs} +3 -3
  49. package/dist/{methods-Crgt0cEf.mjs.map → methods-BEqx06jZ.mjs.map} +1 -1
  50. package/dist/{methods-BcKnS6pA.mjs → methods-BMzxDoxk.mjs} +2 -2
  51. package/dist/{methods-BcKnS6pA.mjs.map → methods-BMzxDoxk.mjs.map} +1 -1
  52. package/dist/{methods-CvCyx_v_.js → methods-BRTxG87E.js} +2 -2
  53. package/dist/{methods-CvCyx_v_.js.map → methods-BRTxG87E.js.map} +1 -1
  54. package/dist/{methods-Ba1XR8Ij.mjs → methods-BeMtF2ph.mjs} +2 -2
  55. package/dist/{methods-Ba1XR8Ij.mjs.map → methods-BeMtF2ph.mjs.map} +1 -1
  56. package/dist/{methods-DJctQ3lm.js → methods-C85_VqKZ.js} +2 -2
  57. package/dist/{methods-DJctQ3lm.js.map → methods-C85_VqKZ.js.map} +1 -1
  58. package/dist/{methods-Bf8iqEhG.mjs → methods-D5Sa5dxr.mjs} +3 -3
  59. package/dist/{methods-Bf8iqEhG.mjs.map → methods-D5Sa5dxr.mjs.map} +1 -1
  60. package/dist/{methods-HbhrcB_u.js → methods-DRivN56g.js} +2 -2
  61. package/dist/{methods-HbhrcB_u.js.map → methods-DRivN56g.js.map} +1 -1
  62. package/dist/{methods-B78wxcbm.mjs → methods-DtUaMG7I.mjs} +2 -2
  63. package/dist/{methods-B78wxcbm.mjs.map → methods-DtUaMG7I.mjs.map} +1 -1
  64. package/dist/{methods-_8MaDPJ6.mjs → methods-DvvWsTzZ.mjs} +2 -2
  65. package/dist/{methods-_8MaDPJ6.mjs.map → methods-DvvWsTzZ.mjs.map} +1 -1
  66. package/dist/{methods-Cvs5hjsE.js → methods-ExKehD5I.js} +2 -2
  67. package/dist/{methods-Cvs5hjsE.js.map → methods-ExKehD5I.js.map} +1 -1
  68. package/dist/recurrence.js +1 -1
  69. package/dist/recurrence.mjs +2 -2
  70. package/dist/reports.js +1 -1
  71. package/dist/reports.mjs +1 -1
  72. package/dist/task-activity.js +1 -1
  73. package/dist/task-activity.mjs +2 -2
  74. package/dist/task-presets.js +1 -1
  75. package/dist/task-presets.mjs +1 -1
  76. package/dist/{tasks-FPNOmtnL.js → tasks-C-Si9c_j.js} +2 -2
  77. package/dist/{tasks-FPNOmtnL.js.map → tasks-C-Si9c_j.js.map} +1 -1
  78. package/dist/{tasks-Cc53eQzu.mjs → tasks-rnhGl39m.mjs} +2 -2
  79. package/dist/{tasks-Cc53eQzu.mjs.map → tasks-rnhGl39m.mjs.map} +1 -1
  80. package/dist/tasks.js +1 -1
  81. package/dist/tasks.mjs +1 -1
  82. package/dist/templates-BNAX4vB8.mjs +29 -0
  83. package/dist/{templates-C_qWeEww.mjs.map → templates-BNAX4vB8.mjs.map} +1 -1
  84. package/dist/templates-D7C0TH1C.js +2 -0
  85. package/dist/{templates-lPeMpQuz.js.map → templates-D7C0TH1C.js.map} +1 -1
  86. package/dist/templates.js +1 -1
  87. package/dist/templates.mjs +1 -1
  88. package/package.json +2 -2
  89. package/dist/fetch-Cp3-cNix.mjs +0 -44
  90. package/dist/fetch-Cp3-cNix.mjs.map +0 -1
  91. package/dist/fetch-DA1lo0q0.js +0 -2
  92. package/dist/fetch-DA1lo0q0.js.map +0 -1
  93. package/dist/index-Cc9-CotA.js +0 -2
  94. package/dist/index-Cc9-CotA.js.map +0 -1
  95. package/dist/index-D6K5zKgZ.mjs +0 -330
  96. package/dist/index-D6K5zKgZ.mjs.map +0 -1
  97. package/dist/templates-C_qWeEww.mjs +0 -30
  98. package/dist/templates-lPeMpQuz.js +0 -2
@@ -1,35 +1,33 @@
1
- var j = (u, d, c) => new Promise((h, l) => {
1
+ var C = (a, d, c) => new Promise((h, l) => {
2
2
  var i = (v) => {
3
3
  try {
4
- a(c.next(v));
4
+ u(c.next(v));
5
5
  } catch (g) {
6
6
  l(g);
7
7
  }
8
8
  }, p = (v) => {
9
9
  try {
10
- a(c.throw(v));
10
+ u(c.throw(v));
11
11
  } catch (g) {
12
12
  l(g);
13
13
  }
14
- }, a = (v) => v.done ? h(v.value) : Promise.resolve(v.value).then(i, p);
15
- a((c = c.apply(u, d)).next());
14
+ }, u = (v) => v.done ? h(v.value) : Promise.resolve(v.value).then(i, p);
15
+ u((c = c.apply(a, d)).next());
16
16
  });
17
- import { c as A } from "../fetch-Cp3-cNix.mjs";
18
- import { b as U, a as K } from "../decorator-DCiVxI72.mjs";
19
- import { c as N, b as T } from "../methods-_8MaDPJ6.mjs";
20
- import { a as P } from "../methods-B78wxcbm.mjs";
21
- import { t as S } from "../methods-Bf8iqEhG.mjs";
22
- function D(u) {
23
- return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, "default") ? u.default : u;
24
- }
25
- var E = { exports: {} }, C;
17
+ import { c as A } from "../fetch-kzLaYwl7.mjs";
18
+ import { g as U } from "../_commonjsHelpers-C6fGbg64.mjs";
19
+ import { b as K, a as D } from "../decorator-DCiVxI72.mjs";
20
+ import { c as N, b as T } from "../methods-DvvWsTzZ.mjs";
21
+ import { a as S } from "../methods-DtUaMG7I.mjs";
22
+ import { t as P } from "../methods-D5Sa5dxr.mjs";
23
+ var E = { exports: {} }, j;
26
24
  function W() {
27
- if (C) return E.exports;
28
- C = 1;
29
- var u = typeof Reflect == "object" ? Reflect : null, d = u && typeof u.apply == "function" ? u.apply : function(e, n, r) {
25
+ if (j) return E.exports;
26
+ j = 1;
27
+ var a = typeof Reflect == "object" ? Reflect : null, d = a && typeof a.apply == "function" ? a.apply : function(e, n, r) {
30
28
  return Function.prototype.apply.call(e, n, r);
31
29
  }, c;
32
- u && typeof u.ownKeys == "function" ? c = u.ownKeys : Object.getOwnPropertySymbols ? c = function(e) {
30
+ a && typeof a.ownKeys == "function" ? c = a.ownKeys : Object.getOwnPropertySymbols ? c = function(e) {
33
31
  return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e));
34
32
  } : c = function(e) {
35
33
  return Object.getOwnPropertyNames(e);
@@ -45,7 +43,7 @@ function W() {
45
43
  }
46
44
  E.exports = i, E.exports.once = F, i.EventEmitter = i, i.prototype._events = void 0, i.prototype._eventsCount = 0, i.prototype._maxListeners = void 0;
47
45
  var p = 10;
48
- function a(t) {
46
+ function u(t) {
49
47
  if (typeof t != "function")
50
48
  throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t);
51
49
  }
@@ -97,7 +95,7 @@ function W() {
97
95
  };
98
96
  function g(t, e, n, r) {
99
97
  var o, f, s;
100
- if (a(n), f = t._events, f === void 0 ? (f = t._events = /* @__PURE__ */ Object.create(null), t._eventsCount = 0) : (f.newListener !== void 0 && (t.emit(
98
+ if (u(n), f = t._events, f === void 0 ? (f = t._events = /* @__PURE__ */ Object.create(null), t._eventsCount = 0) : (f.newListener !== void 0 && (t.emit(
101
99
  "newListener",
102
100
  e,
103
101
  n.listener ? n.listener : n
@@ -124,12 +122,12 @@ function W() {
124
122
  return o.listener = n, r.wrapFn = o, o;
125
123
  }
126
124
  i.prototype.once = function(e, n) {
127
- return a(n), this.on(e, y(this, e, n)), this;
125
+ return u(n), this.on(e, y(this, e, n)), this;
128
126
  }, i.prototype.prependOnceListener = function(e, n) {
129
- return a(n), this.prependListener(e, y(this, e, n)), this;
127
+ return u(n), this.prependListener(e, y(this, e, n)), this;
130
128
  }, i.prototype.removeListener = function(e, n) {
131
129
  var r, o, f, s, m;
132
- if (a(n), o = this._events, o === void 0)
130
+ if (u(n), o = this._events, o === void 0)
133
131
  return this;
134
132
  if (r = o[e], r === void 0)
135
133
  return this;
@@ -235,31 +233,31 @@ function W() {
235
233
  return E.exports;
236
234
  }
237
235
  var q = W();
238
- const B = /* @__PURE__ */ D(q), H = (u, d = new B()) => {
236
+ const B = /* @__PURE__ */ U(q), H = (a, d = new B()) => {
239
237
  const c = {
240
238
  emit: (i, ...p) => (d.emit(i.toString(), ...p), c)
241
239
  }, h = new Promise((i, p) => {
242
- u(c, i).then((a) => a && i(a)).catch(p);
240
+ a(c, i).then((u) => u && i(u)).catch(p);
243
241
  }), l = Object.assign(h, {
244
242
  on: (i, p) => (d.on(
245
243
  i.toString(),
246
- (...a) => (
244
+ (...u) => (
247
245
  // oxlint-disable-next-line no-explicit-any
248
- p(...a)
246
+ p(...u)
249
247
  )
250
248
  ), l),
251
249
  once: (i, p) => (d.once(
252
250
  i.toString(),
253
- (...a) => (
251
+ (...u) => (
254
252
  // oxlint-disable-next-line no-explicit-any
255
- p(...a)
253
+ p(...u)
256
254
  )
257
255
  ), l),
258
256
  off: (i, p) => (d.off(
259
257
  i.toString(),
260
- (...a) => (
258
+ (...u) => (
261
259
  // oxlint-disable-next-line no-explicit-any
262
- p(...a)
260
+ p(...u)
263
261
  )
264
262
  ), l)
265
263
  });
@@ -268,40 +266,40 @@ const B = /* @__PURE__ */ D(q), H = (u, d = new B()) => {
268
266
  "SUCCESS",
269
267
  "ERROR",
270
268
  "ABORTED"
271
- ]), $ = (u) => J.has(u.status), z = (u, d, c) => H(
272
- (h, l) => j(null, null, function* () {
273
- const i = yield P(u), p = A.socket("/generations", [i.namespaceId]);
269
+ ]), $ = (a) => J.has(a.status), z = (a, d, c) => H(
270
+ (h, l) => C(null, null, function* () {
271
+ const i = yield S(a), p = A.socket("/generations", [i.namespaceId]);
274
272
  if (!p)
275
273
  throw new Error("Unable to get socket");
276
274
  p.on(
277
275
  "generation:updated",
278
276
  function v(g) {
279
- const L = S(g);
280
- L.taskId === i.id && (h.emit("progress", L), $(L) && (p.off("generation:updated", v), N(u, `${L.reportId}.det.json`).then((y) => l(y)).catch((y) => {
277
+ const L = P(g);
278
+ L.taskId === i.id && (h.emit("progress", L), $(L) && (p.off("generation:updated", v), N(a, `${L.reportId}.det.json`).then((y) => l(y)).catch((y) => {
281
279
  })));
282
280
  }
283
281
  );
284
- const { id: a } = yield T(u, d, c);
285
- h.emit("started", { id: a });
282
+ const { id: u } = yield T(a, d, c);
283
+ h.emit("started", { id: u });
286
284
  })
287
285
  );
288
- U(z, [
289
- P,
286
+ K(z, [
287
+ S,
290
288
  T,
291
289
  N
292
290
  ]);
293
- function Q(u, d) {
291
+ function Q(a, d) {
294
292
  const c = A.socket("/generations", d);
295
293
  if (!c)
296
294
  throw new Error("Unable to get socket");
297
- const h = (l) => u(S(l));
295
+ const h = (l) => a(P(l));
298
296
  return c.on("generation:updated", h), {
299
297
  stop: () => {
300
298
  c.off("generation:updated", h);
301
299
  }
302
300
  };
303
301
  }
304
- K(Q, "GET /generations/:id", !0);
302
+ D(Q, "GET /generations/:id", !0);
305
303
  export {
306
304
  z as generateAndListenReportOfTask,
307
305
  $ as isGenerationEnded,
@@ -1 +1 @@
1
- {"version":3,"file":"generations.mjs","sources":["../../../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../../src/lib/promises.ts","../../src/helpers/generations/index.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// oxlint-disable-next-line prefer-node-protocol\nimport EventEmitter from 'events';\n\n// oxlint-disable-next-line no-explicit-any\ntype EventMap = Record<string, any[]>;\n\ninterface EventfulListener<Events extends EventMap> {\n on: <Name extends keyof Events>(\n eventName: Name,\n listener: (...args: Events[Name]) => void\n ) => this;\n once: <Name extends keyof Events>(\n eventName: Name,\n listener: (...args: Events[Name]) => void\n ) => this;\n off: <Name extends keyof Events>(\n eventName: Name,\n listener: (...args: Events[Name]) => void\n ) => this;\n}\ninterface EventfulEmitter<Events extends EventMap> {\n emit: <Name extends keyof Events>(\n eventName: Name,\n ...args: Events[Name]\n ) => this;\n}\n\nexport type EventfulPromise<Data, Events extends EventMap> = Promise<Data> &\n EventfulListener<Events>;\n\n/**\n * Attach a `EventEmitter` to a `Promise` returned by the `executor`\n *\n * @param executor Executor returning the promise. The `emitter` is passed to the executor as param.\n * @param emitter `EventEmitter` attached. By default it's a new instance.\n *\n * @returns The EventfulPromise\n */\nconst createEventfulPromise = <Data, Events extends EventMap = EventMap>(\n executor: (\n emitter: EventfulEmitter<Events>,\n resolve: (value: Data) => void\n ) => Promise<Data | void>,\n // oxlint-disable-next-line unicorn/prefer-event-target\n emitter = new EventEmitter()\n): EventfulPromise<Data, Events> => {\n const customEmitter: EventfulEmitter<Events> = {\n emit: (eventName, ...args) => {\n emitter.emit(eventName.toString(), ...args);\n return customEmitter;\n },\n };\n\n // oxlint-disable-next-line promise/avoid-new\n const promise = new Promise<Data>((resolve, reject) => {\n executor(customEmitter, resolve)\n // oxlint-disable-next-line prefer-await-to-then\n .then((res) => res && resolve(res))\n // oxlint-disable-next-line prefer-await-to-then\n .catch(reject);\n });\n\n const res: EventfulPromise<Data, Events> = Object.assign<\n Promise<Data>,\n EventfulListener<Events>\n >(promise, {\n on: (eventName, listener) => {\n emitter.on(eventName.toString(), (...params) =>\n // oxlint-disable-next-line no-explicit-any\n listener(...(params as any))\n );\n return res;\n },\n once: (eventName, listener) => {\n emitter.once(eventName.toString(), (...params) =>\n // oxlint-disable-next-line no-explicit-any\n listener(...(params as any))\n );\n return res;\n },\n off: (eventName, listener) => {\n emitter.off(eventName.toString(), (...params) =>\n // oxlint-disable-next-line no-explicit-any\n listener(...(params as any))\n );\n return res;\n },\n });\n return res;\n};\n\nexport default createEventfulPromise;\n","import { client } from '~/lib/fetch';\nimport createEventfulPromise, { type EventfulPromise } from '~/lib/promises';\n\nimport {\n assignDependencies,\n assignPermission,\n} from '~/helpers/permissions/decorator';\n\nimport { generateReportOfTask, getFileAsJson } from '~/modules/reports/methods';\nimport type { ReportResult } from '~/modules/reports/types';\nimport { getTask } from '~/modules/tasks/methods';\nimport type { Task } from '~/modules/tasks/types';\nimport { transformGeneration } from '~/modules/generations/methods';\nimport type {\n GenerationStatus,\n Generation,\n RawGeneration,\n} from '~/modules/generations/types';\n\nexport interface GenerationStartedEvent {\n id: string;\n}\n\nexport type GenerationProgressEvent = Omit<Generation, 'task'>;\n\n// oxlint-disable-next-line no-explicit-any\ninterface GenerationEvents extends Record<string, any[]> {\n started: [GenerationStartedEvent];\n progress: [GenerationProgressEvent];\n}\n\nconst GEN_END_STATES = new Set<GenerationStatus>([\n 'SUCCESS',\n 'ERROR',\n 'ABORTED',\n]);\n\nexport const isGenerationEnded = (gen: Generation): boolean =>\n GEN_END_STATES.has(gen.status);\n\ntype ReportGenerationPromise = EventfulPromise<ReportResult, GenerationEvents>;\n\n/**\n * Start generation of a report and track progress\n *\n * @param taskOrId Task or Task's id\n * @param targets Override targets, also enable first level of debugging\n *\n * @fires #started When generation started. See `GenerationStartedEvent`.\n * @fires #progress When generation progress. See `GenerationProgressEvent`. Job's progress is\n * between 0 and 1\n *\n * @throws If job's fails. **Not if generation fails !**\n *\n * @returns When the report is ready, returns the report result\n */\nexport const generateAndListenReportOfTask = (\n taskOrId: Omit<Task, 'template'> | string,\n period?: { start: Date; end: Date },\n targets?: string[]\n): ReportGenerationPromise =>\n createEventfulPromise<ReportResult, GenerationEvents>(\n async (events, resolve) => {\n const task = await getTask(taskOrId);\n const websocket = client.socket('/generations', [task.namespaceId]);\n if (!websocket) {\n throw new Error('Unable to get socket');\n }\n\n websocket.on(\n 'generation:updated',\n function onGenerationUpdated(gen: Omit<RawGeneration, 'task'>) {\n const generation: Omit<Generation, 'task'> = transformGeneration(gen);\n // Notify progress if it's the correct task\n if (generation.taskId !== task.id) {\n return;\n }\n events.emit('progress', generation);\n\n // If generation ended, stop listening\n if (!isGenerationEnded(generation)) {\n return;\n }\n websocket.off('generation:updated', onGenerationUpdated);\n\n // And resolve result\n getFileAsJson(taskOrId, `${generation.reportId}.det.json`)\n // oxlint-disable-next-line prefer-await-to-then\n .then((result) => resolve(result))\n // oxlint-disable-next-line prefer-await-to-then\n .catch((_err) => {\n /** */\n });\n }\n );\n\n // Once events are registered, start generation\n const { id } = await generateReportOfTask(taskOrId, period, targets);\n events.emit('started', { id });\n }\n );\nassignDependencies(generateAndListenReportOfTask, [\n getTask,\n generateReportOfTask,\n getFileAsJson,\n]);\n\n/**\n * Listen to all generations\n *\n * @param onUpdate Function to call when a generation is updated\n * @param namespaces Namespaces to listen to\n *\n * @returns Function to remove listener\n */\nexport function listenAllGenerations(\n onUpdate: (generation: Omit<Generation, 'task'>) => void,\n namespaces?: string[]\n): { stop: () => void } {\n const websocket = client.socket('/generations', namespaces);\n if (!websocket) {\n throw new Error('Unable to get socket');\n }\n\n const updated = (gen: Omit<RawGeneration, 'task'>): void =>\n onUpdate(transformGeneration(gen));\n\n websocket.on('generation:updated', updated);\n\n return {\n stop: (): void => {\n websocket.off('generation:updated', updated);\n },\n };\n}\n// Applies same permissions as `GET /generations/:id`\nassignPermission(listenAllGenerations, 'GET /generations/:id', true);\n"],"names":["R","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","value","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","n","_getMaxListeners","that","type","i","doError","events","er","err","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","w","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","createEventfulPromise","executor","customEmitter","eventName","promise","res","params","GEN_END_STATES","isGenerationEnded","gen","generateAndListenReportOfTask","taskOrId","period","targets","__async","task","getTask","websocket","client","onGenerationUpdated","generation","transformGeneration","getFileAsJson","result","_err","id","generateReportOfTask","assignDependencies","listenAllGenerations","onUpdate","namespaces","updated","assignPermission"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"generations.mjs","sources":["../../../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../../src/lib/promises.ts","../../src/helpers/generations/index.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// oxlint-disable-next-line prefer-node-protocol\nimport EventEmitter from 'events';\n\n// oxlint-disable-next-line no-explicit-any\ntype EventMap = Record<string, any[]>;\n\ninterface EventfulListener<Events extends EventMap> {\n on: <Name extends keyof Events>(\n eventName: Name,\n listener: (...args: Events[Name]) => void\n ) => this;\n once: <Name extends keyof Events>(\n eventName: Name,\n listener: (...args: Events[Name]) => void\n ) => this;\n off: <Name extends keyof Events>(\n eventName: Name,\n listener: (...args: Events[Name]) => void\n ) => this;\n}\ninterface EventfulEmitter<Events extends EventMap> {\n emit: <Name extends keyof Events>(\n eventName: Name,\n ...args: Events[Name]\n ) => this;\n}\n\nexport type EventfulPromise<Data, Events extends EventMap> = Promise<Data> &\n EventfulListener<Events>;\n\n/**\n * Attach a `EventEmitter` to a `Promise` returned by the `executor`\n *\n * @param executor Executor returning the promise. The `emitter` is passed to the executor as param.\n * @param emitter `EventEmitter` attached. By default it's a new instance.\n *\n * @returns The EventfulPromise\n */\nconst createEventfulPromise = <Data, Events extends EventMap = EventMap>(\n executor: (\n emitter: EventfulEmitter<Events>,\n resolve: (value: Data) => void\n ) => Promise<Data | void>,\n // oxlint-disable-next-line unicorn/prefer-event-target\n emitter = new EventEmitter()\n): EventfulPromise<Data, Events> => {\n const customEmitter: EventfulEmitter<Events> = {\n emit: (eventName, ...args) => {\n emitter.emit(eventName.toString(), ...args);\n return customEmitter;\n },\n };\n\n // oxlint-disable-next-line promise/avoid-new\n const promise = new Promise<Data>((resolve, reject) => {\n executor(customEmitter, resolve)\n // oxlint-disable-next-line prefer-await-to-then\n .then((res) => res && resolve(res))\n // oxlint-disable-next-line prefer-await-to-then\n .catch(reject);\n });\n\n const res: EventfulPromise<Data, Events> = Object.assign<\n Promise<Data>,\n EventfulListener<Events>\n >(promise, {\n on: (eventName, listener) => {\n emitter.on(eventName.toString(), (...params) =>\n // oxlint-disable-next-line no-explicit-any\n listener(...(params as any))\n );\n return res;\n },\n once: (eventName, listener) => {\n emitter.once(eventName.toString(), (...params) =>\n // oxlint-disable-next-line no-explicit-any\n listener(...(params as any))\n );\n return res;\n },\n off: (eventName, listener) => {\n emitter.off(eventName.toString(), (...params) =>\n // oxlint-disable-next-line no-explicit-any\n listener(...(params as any))\n );\n return res;\n },\n });\n return res;\n};\n\nexport default createEventfulPromise;\n","import { client } from '~/lib/fetch';\nimport createEventfulPromise, { type EventfulPromise } from '~/lib/promises';\n\nimport {\n assignDependencies,\n assignPermission,\n} from '~/helpers/permissions/decorator';\n\nimport { generateReportOfTask, getFileAsJson } from '~/modules/reports/methods';\nimport type { ReportResult } from '~/modules/reports/types';\nimport { getTask } from '~/modules/tasks/methods';\nimport type { Task } from '~/modules/tasks/types';\nimport { transformGeneration } from '~/modules/generations/methods';\nimport type {\n GenerationStatus,\n Generation,\n RawGeneration,\n} from '~/modules/generations/types';\n\nexport interface GenerationStartedEvent {\n id: string;\n}\n\nexport type GenerationProgressEvent = Omit<Generation, 'task'>;\n\n// oxlint-disable-next-line no-explicit-any\ninterface GenerationEvents extends Record<string, any[]> {\n started: [GenerationStartedEvent];\n progress: [GenerationProgressEvent];\n}\n\nconst GEN_END_STATES = new Set<GenerationStatus>([\n 'SUCCESS',\n 'ERROR',\n 'ABORTED',\n]);\n\nexport const isGenerationEnded = (gen: Generation): boolean =>\n GEN_END_STATES.has(gen.status);\n\ntype ReportGenerationPromise = EventfulPromise<ReportResult, GenerationEvents>;\n\n/**\n * Start generation of a report and track progress\n *\n * @param taskOrId Task or Task's id\n * @param targets Override targets, also enable first level of debugging\n *\n * @fires #started When generation started. See `GenerationStartedEvent`.\n * @fires #progress When generation progress. See `GenerationProgressEvent`. Job's progress is\n * between 0 and 1\n *\n * @throws If job's fails. **Not if generation fails !**\n *\n * @returns When the report is ready, returns the report result\n */\nexport const generateAndListenReportOfTask = (\n taskOrId: Omit<Task, 'template'> | string,\n period?: { start: Date; end: Date },\n targets?: string[]\n): ReportGenerationPromise =>\n createEventfulPromise<ReportResult, GenerationEvents>(\n async (events, resolve) => {\n const task = await getTask(taskOrId);\n const websocket = client.socket('/generations', [task.namespaceId]);\n if (!websocket) {\n throw new Error('Unable to get socket');\n }\n\n websocket.on(\n 'generation:updated',\n function onGenerationUpdated(gen: Omit<RawGeneration, 'task'>) {\n const generation: Omit<Generation, 'task'> = transformGeneration(gen);\n // Notify progress if it's the correct task\n if (generation.taskId !== task.id) {\n return;\n }\n events.emit('progress', generation);\n\n // If generation ended, stop listening\n if (!isGenerationEnded(generation)) {\n return;\n }\n websocket.off('generation:updated', onGenerationUpdated);\n\n // And resolve result\n getFileAsJson(taskOrId, `${generation.reportId}.det.json`)\n // oxlint-disable-next-line prefer-await-to-then\n .then((result) => resolve(result))\n // oxlint-disable-next-line prefer-await-to-then\n .catch((_err) => {\n /** */\n });\n }\n );\n\n // Once events are registered, start generation\n const { id } = await generateReportOfTask(taskOrId, period, targets);\n events.emit('started', { id });\n }\n );\nassignDependencies(generateAndListenReportOfTask, [\n getTask,\n generateReportOfTask,\n getFileAsJson,\n]);\n\n/**\n * Listen to all generations\n *\n * @param onUpdate Function to call when a generation is updated\n * @param namespaces Namespaces to listen to\n *\n * @returns Function to remove listener\n */\nexport function listenAllGenerations(\n onUpdate: (generation: Omit<Generation, 'task'>) => void,\n namespaces?: string[]\n): { stop: () => void } {\n const websocket = client.socket('/generations', namespaces);\n if (!websocket) {\n throw new Error('Unable to get socket');\n }\n\n const updated = (gen: Omit<RawGeneration, 'task'>): void =>\n onUpdate(transformGeneration(gen));\n\n websocket.on('generation:updated', updated);\n\n return {\n stop: (): void => {\n websocket.off('generation:updated', updated);\n },\n };\n}\n// Applies same permissions as `GET /generations/:id`\nassignPermission(listenAllGenerations, 'GET /generations/:id', true);\n"],"names":["R","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","value","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","n","_getMaxListeners","that","type","i","doError","events","er","err","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","w","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","createEventfulPromise","executor","customEmitter","eventName","promise","res","params","GEN_END_STATES","isGenerationEnded","gen","generateAndListenReportOfTask","taskOrId","period","targets","__async","task","getTask","websocket","client","onGenerationUpdated","generation","transformGeneration","getFileAsJson","result","_err","id","generateReportOfTask","assignDependencies","listenAllGenerations","onUpdate","namespaces","updated","assignPermission"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../templates-lPeMpQuz.js"),u=require("../tasks-FPNOmtnL.js");function s(e){return"at"in e}function p(e){return!s(e)}function l(e){return e.hash!==o.hashLayout(e)}function H(e,r,t){if(e.figures.some(a=>a.id===r.id))throw new Error(`Figure "${r.id}" already exists`);return e.figures.splice(t!=null?t:e.figures.length,0,r),r}function c(e,r){const t=e;return t.figures=e.figures.filter(a=>a.id!==r.id),e}function f(e,r,t){const a=e.figures.findIndex(n=>n.id===r.id);if(a<0)throw new Error(`Figure "${r.id}" not found`);const i=e;return i.figures[a]=t,e}exports.createLayoutHelper=o.createLayoutHelper;exports.createLayoutHelperFrom=o.createLayoutHelperFrom;exports.hashLayout=o.hashLayout;exports.layoutHelperToJSON=o.layoutHelperToJSON;exports.createTaskLayoutHelper=u.createTaskLayoutHelper;exports.createTaskLayoutHelperFrom=u.createTaskLayoutHelperFrom;exports.taskLayoutHelperToJSON=u.taskLayoutHelperToJSON;exports.addFigureOfHelper=H;exports.hasLayoutHelperChanged=l;exports.isTaskLayoutHelper=s;exports.isTemplateLayoutHelper=p;exports.removeFigureOfHelper=c;exports.updateFigureOfHelper=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../templates-D7C0TH1C.js"),u=require("../tasks-C-Si9c_j.js");function s(e){return"at"in e}function p(e){return!s(e)}function l(e){return e.hash!==o.hashLayout(e)}function H(e,r,t){if(e.figures.some(a=>a.id===r.id))throw new Error(`Figure "${r.id}" already exists`);return e.figures.splice(t!=null?t:e.figures.length,0,r),r}function c(e,r){const t=e;return t.figures=e.figures.filter(a=>a.id!==r.id),e}function f(e,r,t){const a=e.figures.findIndex(n=>n.id===r.id);if(a<0)throw new Error(`Figure "${r.id}" not found`);const i=e;return i.figures[a]=t,e}exports.createLayoutHelper=o.createLayoutHelper;exports.createLayoutHelperFrom=o.createLayoutHelperFrom;exports.hashLayout=o.hashLayout;exports.layoutHelperToJSON=o.layoutHelperToJSON;exports.createTaskLayoutHelper=u.createTaskLayoutHelper;exports.createTaskLayoutHelperFrom=u.createTaskLayoutHelperFrom;exports.taskLayoutHelperToJSON=u.taskLayoutHelperToJSON;exports.addFigureOfHelper=H;exports.hasLayoutHelperChanged=l;exports.isTaskLayoutHelper=s;exports.isTemplateLayoutHelper=p;exports.removeFigureOfHelper=c;exports.updateFigureOfHelper=f;
2
2
  //# sourceMappingURL=layouts.js.map
@@ -1,6 +1,6 @@
1
- import { h as i } from "../templates-C_qWeEww.mjs";
2
- import { c as h, a as m, l as L } from "../templates-C_qWeEww.mjs";
3
- import { c as F, a as T, t as O } from "../tasks-Cc53eQzu.mjs";
1
+ import { h as i } from "../templates-BNAX4vB8.mjs";
2
+ import { c as h, a as m, l as L } from "../templates-BNAX4vB8.mjs";
3
+ import { c as F, a as T, t as O } from "../tasks-rnhGl39m.mjs";
4
4
  function n(e) {
5
5
  return "at" in e;
6
6
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=(s,i,r)=>new Promise((t,n)=>{var u=e=>{try{o(r.next(e))}catch(a){n(a)}},l=e=>{try{o(r.throw(e))}catch(a){n(a)}},o=e=>e.done?t(e.value):Promise.resolve(e.value).then(u,l);o((r=r.apply(s,i)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("../methods-CvCyx_v_.js"),f=require("../decorator-C2gcn2rK.js");let c;function h(){return m(this,null,function*(){c=yield P.getCurrentPermissions()})}function y(s,i){if(!f.isSDKFunction(s))return console.warn(`[ezr][hasPermission] Function ${s.name} is not compatible with ezrPermission decorator`),!0;if(!c)return console.warn("[ezr][hasPermission] No current permissions set, please call refreshPermissions() first"),!1;const{general:r,namespaces:t}=c;return s.ezrPermissions.every(({permission:n,isNamespaced:u})=>u?(i!=null?i:Object.keys(t)).some(o=>{var e;return((e=t[o])==null?void 0:e[n])||!1}):r[n]||!1)}exports.hasPermission=y;exports.refreshPermissions=h;
1
+ "use strict";var m=(s,i,r)=>new Promise((t,n)=>{var u=e=>{try{o(r.next(e))}catch(a){n(a)}},l=e=>{try{o(r.throw(e))}catch(a){n(a)}},o=e=>e.done?t(e.value):Promise.resolve(e.value).then(u,l);o((r=r.apply(s,i)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("../methods-BRTxG87E.js"),f=require("../decorator-C2gcn2rK.js");let c;function h(){return m(this,null,function*(){c=yield P.getCurrentPermissions()})}function y(s,i){if(!f.isSDKFunction(s))return console.warn(`[ezr][hasPermission] Function ${s.name} is not compatible with ezrPermission decorator`),!0;if(!c)return console.warn("[ezr][hasPermission] No current permissions set, please call refreshPermissions() first"),!1;const{general:r,namespaces:t}=c;return s.ezrPermissions.every(({permission:n,isNamespaced:u})=>u?(i!=null?i:Object.keys(t)).some(o=>{var e;return((e=t[o])==null?void 0:e[n])||!1}):r[n]||!1)}exports.hasPermission=y;exports.refreshPermissions=h;
2
2
  //# sourceMappingURL=permissions.js.map
@@ -14,7 +14,7 @@ var l = (e, i, s) => new Promise((t, n) => {
14
14
  }, o = (r) => r.done ? t(r.value) : Promise.resolve(r.value).then(a, f);
15
15
  o((s = s.apply(e, i)).next());
16
16
  });
17
- import { a as c } from "../methods-BcKnS6pA.mjs";
17
+ import { a as c } from "../methods-BMzxDoxk.mjs";
18
18
  import { i as P } from "../decorator-DCiVxI72.mjs";
19
19
  let u;
20
20
  function y() {
@@ -1,2 +1,2 @@
1
- "use strict";var u=(s,i,e)=>new Promise((c,o)=>{var d=t=>{try{a(e.next(t))}catch(n){o(n)}},g=t=>{try{a(e.throw(t))}catch(n){o(n)}},a=t=>t.done?c(t.value):Promise.resolve(t.value).then(d,g);a((e=e.apply(s,i)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../methods-eIVAWN5f.js"),l=require("../decorator-C2gcn2rK.js");function p(s,i){return u(this,null,function*(){let e=s;return typeof e=="string"&&(e=yield r.getTaskPreset(s)),yield r.upsertTaskPreset({id:e.id,name:e.name,templateId:e.templateId,recurrence:e.recurrence,fetchOptions:e.fetchOptions,hidden:i})})}l.assignDependencies(p,[r.getTaskPreset,r.upsertTaskPreset]);exports.changeTaskPresetVisibility=p;
1
+ "use strict";var u=(s,i,e)=>new Promise((c,o)=>{var d=t=>{try{a(e.next(t))}catch(n){o(n)}},g=t=>{try{a(e.throw(t))}catch(n){o(n)}},a=t=>t.done?c(t.value):Promise.resolve(t.value).then(d,g);a((e=e.apply(s,i)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../methods--DanahvX.js"),l=require("../decorator-C2gcn2rK.js");function p(s,i){return u(this,null,function*(){let e=s;return typeof e=="string"&&(e=yield r.getTaskPreset(s)),yield r.upsertTaskPreset({id:e.id,name:e.name,templateId:e.templateId,recurrence:e.recurrence,fetchOptions:e.fetchOptions,hidden:i})})}l.assignDependencies(p,[r.getTaskPreset,r.upsertTaskPreset]);exports.changeTaskPresetVisibility=p;
2
2
  //# sourceMappingURL=task-presets.js.map
@@ -14,7 +14,7 @@ var p = (s, a, e) => new Promise((n, c) => {
14
14
  }, r = (t) => t.done ? n(t.value) : Promise.resolve(t.value).then(f, u);
15
15
  r((e = e.apply(s, a)).next());
16
16
  });
17
- import { a as o, u as m } from "../methods-Crgt0cEf.mjs";
17
+ import { a as o, u as m } from "../methods-BEqx06jZ.mjs";
18
18
  import { b as d } from "../decorator-DCiVxI72.mjs";
19
19
  function g(s, a) {
20
20
  return p(this, null, function* () {
@@ -1,2 +1,2 @@
1
- "use strict";var A=Object.defineProperty,S=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var u=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var x=(e,n,r)=>n in e?A(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,f=(e,n)=>{for(var r in n||(n={}))h.call(n,r)&&x(e,r,n[r]);if(u)for(var r of u(n))H.call(n,r)&&x(e,r,n[r]);return e},m=(e,n)=>S(e,D(n));var y=(e,n)=>{var r={};for(var t in e)h.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&u)for(var t of u(e))n.indexOf(t)<0&&H.call(e,t)&&(r[t]=e[t]);return r};var g=(e,n,r)=>new Promise((t,a)=>{var s=d=>{try{c(r.next(d))}catch(i){a(i)}},o=d=>{try{c(r.throw(d))}catch(i){a(i)}},c=d=>d.done?t(d.value):Promise.resolve(d.value).then(s,o);c((r=r.apply(e,n)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Y=require("../decorator-C2gcn2rK.js"),l=require("../methods-CBlHpa4P.js"),B=require("object-hash"),q=require("date-fns"),L=require("../tasks-FPNOmtnL.js");function I(e,n){const r={};switch(n){case"DAILY":r.days=1;break;case"WEEKLY":r.weeks=1;break;case"MONTHLY":r.months=1;break;case"QUARTERLY":r.months=3;break;case"BIENNIAL":r.months=6;break;case"YEARLY":r.years=1;break;default:throw new Error("Recurrence not found")}return q.add(e,r)}function T(e="",n="",r=[],t=[]){var a;return{version:2,dateField:n,inserts:r,filters:new Map((a=t==null?void 0:t.map(s=>[s.name,s]))!=null?a:[]),index:e}}function E(e){var n,r;return T(e.index,e.dateField,(r=(n=e.inserts)==null?void 0:n.map(t=>L.createTaskLayoutHelperFrom(t)))!=null?r:[],e.filters)}function J(e){return{version:e.version,index:e.index,inserts:e.inserts.map(n=>L.taskLayoutHelperToJSON(n)),dateField:e.dateField,filters:Array.from(e.filters.values())}}function k(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 M(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(s=>s.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 B({name:e.name,description:e.description,extendedId:e.extendedId,template:e.template,targets:e.targets,recurrence:e.recurrence,nextRun:e.nextRun,enabled:e.enabled})}function w(e="",n="",r="",t="",a,s=[],o="DAILY",c,d=!0,i,F,R="",N=new Date,v){const p={id:R,name:e,description:n,namespaceId:r,extendedId:t,template:a!=null?a:T(),targets:s,recurrence:o,nextRun:c!=null?c:I(new Date,o),enabled:d,lastExtended:i,lastRun:F,createdAt:N,updatedAt:v,hash:""};return p.hash=O(p),p}function C(e){var n;return w(e.name,e.description,e.namespaceId,e.extendedId,E(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 $(e){return{name:e.name,description:e.description,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}}function K(e){return e.hash!==O(e)}function P(e,n){const r=n.layouts.map(s=>m(f({},s),{readonly:!0}));for(const t of e.inserts){const a=t,{at:s}=a,o=y(a,["at"]);r.splice(s,0,m(f({},o),{readonly:!1}))}return r}function b(e,n){return g(this,null,function*(){const r=yield l.getTask(e);return yield l.upsertTask({id:r.id,name:r.name,description:r.description,extendedId:r.extendedId,namespaceId:r.namespaceId,nextRun:r.nextRun,recurrence:r.recurrence,targets:r.targets,template:r.template,lastExtended:r.lastExtended,enabled:n})})}Y.assignDependencies(b,[l.getTask,l.upsertTask]);exports.addLayoutOfHelper=k;exports.calcNextDateFromRecurrence=I;exports.changeTaskEnableState=b;exports.createTaskBodyHelper=T;exports.createTaskBodyHelperFrom=E;exports.createTaskHelper=w;exports.createTaskHelperFrom=C;exports.getLayoutsOfHelpers=P;exports.hasTaskChanged=K;exports.removeLayoutOfHelper=M;exports.taskHelperToJSON=$;exports.updateLayoutOfHelper=j;
1
+ "use strict";var A=Object.defineProperty,S=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var u=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var h=(e,n,r)=>n in e?A(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,f=(e,n)=>{for(var r in n||(n={}))x.call(n,r)&&h(e,r,n[r]);if(u)for(var r of u(n))H.call(n,r)&&h(e,r,n[r]);return e},m=(e,n)=>S(e,D(n));var g=(e,n)=>{var r={};for(var t in e)x.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&u)for(var t of u(e))n.indexOf(t)<0&&H.call(e,t)&&(r[t]=e[t]);return r};var y=(e,n,r)=>new Promise((t,a)=>{var s=d=>{try{c(r.next(d))}catch(i){a(i)}},o=d=>{try{c(r.throw(d))}catch(i){a(i)}},c=d=>d.done?t(d.value):Promise.resolve(d.value).then(s,o);c((r=r.apply(e,n)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Y=require("../decorator-C2gcn2rK.js"),l=require("../methods-B7KR7IhF.js"),B=require("../index-CVa-i8Jy.js"),q=require("date-fns"),L=require("../tasks-C-Si9c_j.js");function I(e,n){const r={};switch(n){case"DAILY":r.days=1;break;case"WEEKLY":r.weeks=1;break;case"MONTHLY":r.months=1;break;case"QUARTERLY":r.months=3;break;case"BIENNIAL":r.months=6;break;case"YEARLY":r.years=1;break;default:throw new Error("Recurrence not found")}return q.add(e,r)}function T(e="",n="",r=[],t=[]){var a;return{version:2,dateField:n,inserts:r,filters:new Map((a=t==null?void 0:t.map(s=>[s.name,s]))!=null?a:[]),index:e}}function E(e){var n,r;return T(e.index,e.dateField,(r=(n=e.inserts)==null?void 0:n.map(t=>L.createTaskLayoutHelperFrom(t)))!=null?r:[],e.filters)}function J(e){return{version:e.version,index:e.index,inserts:e.inserts.map(n=>L.taskLayoutHelperToJSON(n)),dateField:e.dateField,filters:Array.from(e.filters.values())}}function k(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 M(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(s=>s.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 B.objectHash({name:e.name,description:e.description,extendedId:e.extendedId,template:e.template,targets:e.targets,recurrence:e.recurrence,nextRun:e.nextRun,enabled:e.enabled})}function w(e="",n="",r="",t="",a,s=[],o="DAILY",c,d=!0,i,F,R="",N=new Date,v){const p={id:R,name:e,description:n,namespaceId:r,extendedId:t,template:a!=null?a:T(),targets:s,recurrence:o,nextRun:c!=null?c:I(new Date,o),enabled:d,lastExtended:i,lastRun:F,createdAt:N,updatedAt:v,hash:""};return p.hash=O(p),p}function C(e){var n;return w(e.name,e.description,e.namespaceId,e.extendedId,E(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 $(e){return{name:e.name,description:e.description,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}}function K(e){return e.hash!==O(e)}function P(e,n){const r=n.layouts.map(s=>m(f({},s),{readonly:!0}));for(const t of e.inserts){const a=t,{at:s}=a,o=g(a,["at"]);r.splice(s,0,m(f({},o),{readonly:!1}))}return r}function b(e,n){return y(this,null,function*(){const r=yield l.getTask(e);return yield l.upsertTask({id:r.id,name:r.name,description:r.description,extendedId:r.extendedId,namespaceId:r.namespaceId,nextRun:r.nextRun,recurrence:r.recurrence,targets:r.targets,template:r.template,lastExtended:r.lastExtended,enabled:n})})}Y.assignDependencies(b,[l.getTask,l.upsertTask]);exports.addLayoutOfHelper=k;exports.calcNextDateFromRecurrence=I;exports.changeTaskEnableState=b;exports.createTaskBodyHelper=T;exports.createTaskBodyHelperFrom=E;exports.createTaskHelper=w;exports.createTaskHelperFrom=C;exports.getLayoutsOfHelpers=P;exports.hasTaskChanged=K;exports.removeLayoutOfHelper=M;exports.taskHelperToJSON=$;exports.updateLayoutOfHelper=j;
2
2
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sources":["../../src/helpers/tasks/recurrence.ts","../../src/helpers/tasks/editor/body.ts","../../src/helpers/tasks/editor/index.ts","../../src/helpers/tasks/index.ts"],"sourcesContent":["import { add, type Duration } from 'date-fns';\nimport type { TaskRecurrence } from '~/modules/tasks';\n\n/**\n * Calculate next run date for the task\n *\n * @param initial Initial date of the task\n * @param recurrence The task recurrence\n *\n * @deprecated Please use the `recurrence` module\n * @see {@link getNextDateFromRecurrence}\n *\n * @returns The new date of the task\n */\nexport function calcNextDateFromRecurrence(\n initial: Date,\n recurrence: TaskRecurrence\n): Date {\n const duration: Duration = {};\n\n switch (recurrence) {\n case 'DAILY':\n duration.days = 1;\n break;\n case 'WEEKLY':\n duration.weeks = 1;\n break;\n case 'MONTHLY':\n duration.months = 1;\n break;\n case 'QUARTERLY':\n duration.months = 3;\n break;\n case 'BIENNIAL':\n duration.months = 6;\n break;\n case 'YEARLY':\n duration.years = 1;\n break;\n default:\n throw new Error('Recurrence not found');\n }\n\n return add(initial, duration);\n}\n","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(\n template: Task['template']\n): TaskBodyHelper {\n return createTaskBodyHelper(\n template.index,\n template.dateField,\n template.inserts?.map((lay) => createTaskLayoutHelperFrom(lay)) ?? [],\n template.filters\n );\n}\n\nexport function taskBodyHelperToJSON(\n template: TaskBodyHelper\n): Task['template'] {\n return {\n version: template.version,\n index: template.index,\n inserts: template.inserts.map((lay) => taskLayoutHelperToJSON(lay)),\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((lay) => lay.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((lay) => lay.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((lay) => lay.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 {\n InputTask,\n LastExtended,\n TaskRecurrence,\n} from '~/modules/tasks/types';\n\nimport type { TemplateBodyHelper } from '../../templates/editor/body';\nimport type { AnyLayoutHelper } from '../../templates/editor/layouts';\nimport { calcNextDateFromRecurrence } from '../recurrence';\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 description: task.description,\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 ?? calcNextDateFromRecurrence(new Date(), 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): InputTask {\n return {\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 };\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): (AnyLayoutHelper & { readonly: boolean })[] {\n const layouts = templateBody.layouts.map((lay) => ({\n ...lay,\n readonly: true,\n }));\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 createTaskBodyHelper,\n createTaskBodyHelperFrom,\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';\nexport * from './recurrence';\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 */\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":["calcNextDateFromRecurrence","initial","recurrence","duration","add","createTaskBodyHelper","index","dateField","inserts","filters","_a","filter","createTaskBodyHelperFrom","template","_b","lay","createTaskLayoutHelperFrom","taskBodyHelperToJSON","taskLayoutHelperToJSON","addLayoutOfHelper","body","layout","removeLayoutOfHelper","updateLayoutOfHelper","oldLayout","newLayout","hashTask","task","objectHash","createTaskHelper","name","description","namespaceId","extendedId","targets","nextRun","enabled","lastExtended","lastRun","id","createdAt","updatedAt","createTaskHelperFrom","taskHelperToJSON","hasTaskChanged","getLayoutsOfHelpers","taskBody","templateBody","layouts","__spreadProps","__spreadValues","at","__objRest","changeTaskEnableState","taskOrId","__async","base","getTask","upsertTask","assignDependencies"],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sources":["../../src/helpers/tasks/recurrence.ts","../../src/helpers/tasks/editor/body.ts","../../src/helpers/tasks/editor/index.ts","../../src/helpers/tasks/index.ts"],"sourcesContent":["import { add, type Duration } from 'date-fns';\nimport type { TaskRecurrence } from '~/modules/tasks';\n\n/**\n * Calculate next run date for the task\n *\n * @param initial Initial date of the task\n * @param recurrence The task recurrence\n *\n * @deprecated Please use the `recurrence` module\n * @see {@link getNextDateFromRecurrence}\n *\n * @returns The new date of the task\n */\nexport function calcNextDateFromRecurrence(\n initial: Date,\n recurrence: TaskRecurrence\n): Date {\n const duration: Duration = {};\n\n switch (recurrence) {\n case 'DAILY':\n duration.days = 1;\n break;\n case 'WEEKLY':\n duration.weeks = 1;\n break;\n case 'MONTHLY':\n duration.months = 1;\n break;\n case 'QUARTERLY':\n duration.months = 3;\n break;\n case 'BIENNIAL':\n duration.months = 6;\n break;\n case 'YEARLY':\n duration.years = 1;\n break;\n default:\n throw new Error('Recurrence not found');\n }\n\n return add(initial, duration);\n}\n","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(\n template: Task['template']\n): TaskBodyHelper {\n return createTaskBodyHelper(\n template.index,\n template.dateField,\n template.inserts?.map((lay) => createTaskLayoutHelperFrom(lay)) ?? [],\n template.filters\n );\n}\n\nexport function taskBodyHelperToJSON(\n template: TaskBodyHelper\n): Task['template'] {\n return {\n version: template.version,\n index: template.index,\n inserts: template.inserts.map((lay) => taskLayoutHelperToJSON(lay)),\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((lay) => lay.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((lay) => lay.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((lay) => lay.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 {\n InputTask,\n LastExtended,\n TaskRecurrence,\n} from '~/modules/tasks/types';\n\nimport type { TemplateBodyHelper } from '../../templates/editor/body';\nimport type { AnyLayoutHelper } from '../../templates/editor/layouts';\nimport { calcNextDateFromRecurrence } from '../recurrence';\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 description: task.description,\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 ?? calcNextDateFromRecurrence(new Date(), 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): InputTask {\n return {\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 };\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): (AnyLayoutHelper & { readonly: boolean })[] {\n const layouts = templateBody.layouts.map((lay) => ({\n ...lay,\n readonly: true,\n }));\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 createTaskBodyHelper,\n createTaskBodyHelperFrom,\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';\nexport * from './recurrence';\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 */\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":["calcNextDateFromRecurrence","initial","recurrence","duration","add","createTaskBodyHelper","index","dateField","inserts","filters","_a","filter","createTaskBodyHelperFrom","template","_b","lay","createTaskLayoutHelperFrom","taskBodyHelperToJSON","taskLayoutHelperToJSON","addLayoutOfHelper","body","layout","removeLayoutOfHelper","updateLayoutOfHelper","oldLayout","newLayout","hashTask","task","objectHash","createTaskHelper","name","description","namespaceId","extendedId","targets","nextRun","enabled","lastExtended","lastRun","id","createdAt","updatedAt","createTaskHelperFrom","taskHelperToJSON","hasTaskChanged","getLayoutsOfHelpers","taskBody","templateBody","layouts","__spreadProps","__spreadValues","at","__objRest","changeTaskEnableState","taskOrId","__async","base","getTask","upsertTask","assignDependencies"],"mappings":"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"}
@@ -22,24 +22,24 @@ var I = (e, r) => {
22
22
  var T = (e, r, n) => new Promise((t, a) => {
23
23
  var d = (s) => {
24
24
  try {
25
- i(n.next(s));
25
+ o(n.next(s));
26
26
  } catch (c) {
27
27
  a(c);
28
28
  }
29
- }, o = (s) => {
29
+ }, i = (s) => {
30
30
  try {
31
- i(n.throw(s));
31
+ o(n.throw(s));
32
32
  } catch (c) {
33
33
  a(c);
34
34
  }
35
- }, i = (s) => s.done ? t(s.value) : Promise.resolve(s.value).then(d, o);
36
- i((n = n.apply(e, r)).next());
35
+ }, o = (s) => s.done ? t(s.value) : Promise.resolve(s.value).then(d, i);
36
+ o((n = n.apply(e, r)).next());
37
37
  });
38
38
  import { b as N } from "../decorator-DCiVxI72.mjs";
39
- import { a as E, u as H } from "../methods-B78wxcbm.mjs";
40
- import Y from "object-hash";
39
+ import { a as E, u as H } from "../methods-DtUaMG7I.mjs";
40
+ import { o as Y } from "../index-CqG3FOrT.mjs";
41
41
  import { add as v } from "date-fns";
42
- import { a as D, t as B } from "../tasks-Cc53eQzu.mjs";
42
+ import { a as D, t as B } from "../tasks-rnhGl39m.mjs";
43
43
  function S(e, r) {
44
44
  const n = {};
45
45
  switch (r) {
@@ -122,7 +122,7 @@ function w(e) {
122
122
  enabled: e.enabled
123
123
  });
124
124
  }
125
- function $(e = "", r = "", n = "", t = "", a, d = [], o = "DAILY", i, s = !0, c, g, y = "", R = /* @__PURE__ */ new Date(), b) {
125
+ function $(e = "", r = "", n = "", t = "", a, d = [], i = "DAILY", o, s = !0, c, g, y = "", R = /* @__PURE__ */ new Date(), b) {
126
126
  const p = {
127
127
  id: y,
128
128
  name: e,
@@ -131,8 +131,8 @@ function $(e = "", r = "", n = "", t = "", a, d = [], o = "DAILY", i, s = !0, c,
131
131
  extendedId: t,
132
132
  template: a != null ? a : L(),
133
133
  targets: d,
134
- recurrence: o,
135
- nextRun: i != null ? i : S(/* @__PURE__ */ new Date(), o),
134
+ recurrence: i,
135
+ nextRun: o != null ? o : S(/* @__PURE__ */ new Date(), i),
136
136
  enabled: s,
137
137
  lastExtended: c,
138
138
  lastRun: g,
@@ -183,8 +183,8 @@ function _(e, r) {
183
183
  readonly: !0
184
184
  }));
185
185
  for (const t of e.inserts) {
186
- const a = t, { at: d } = a, o = I(a, ["at"]);
187
- n.splice(d, 0, l(m({}, o), { readonly: !1 }));
186
+ const a = t, { at: d } = a, i = I(a, ["at"]);
187
+ n.splice(d, 0, l(m({}, i), { readonly: !1 }));
188
188
  }
189
189
  return n;
190
190
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=(e,t,a)=>new Promise((r,n)=>{var o=l=>{try{u(a.next(l))}catch(p){n(p)}},i=l=>{try{u(a.throw(l))}catch(p){n(p)}},u=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,i);u((a=a.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../methods-DJctQ3lm.js"),h=require("../decorator-C2gcn2rK.js"),y=require("object-hash"),d=require("../templates-lPeMpQuz.js");function c(e,t="",a=[],r=[],n){var o;return{version:2,dateField:t,layouts:a,filters:new Map((o=r==null?void 0:r.map(i=>[i.name,i]))!=null?o:[]),grid:n,index:e}}function f(e){return c(e.index,e.dateField,e.layouts.map(t=>d.createLayoutHelperFrom(t)),e.filters,e.grid)}function O(e){return{version:e.version,dateField:e.dateField,layouts:e.layouts.map(t=>d.layoutHelperToJSON(t)),filters:Array.from(e.filters.values()),grid:e.grid,index:e.index}}function w(e,t,a){if(e.layouts.some(r=>r.id===t.id))throw new Error(`Layout "${t.id}" already exists`);return e.layouts.splice(a!=null?a:e.layouts.length,0,t),e}function v(e,t){const a=e;return a.layouts=e.layouts.filter(r=>r.id!==t.id),e}function F(e,t,a){const r=e.layouts.findIndex(o=>o.id===t.id);if(r<0)throw new Error(`Layout "${t.id}" not found`);const n=e;return n.layouts[r]=a,e}function T(e){return y({name:e.name,body:e.body,tags:e.tags})}function H(e="",t,a=new Map,r="",n=new Date,o){const i={id:r,name:e,body:t!=null?t:c(),tags:a,createdAt:n,updatedAt:o,hash:""};return i.hash=T(i),i}function L(e){var t,a;return H(e.name,f(e.body),new Map((a=(t=e.tags)==null?void 0:t.map(r=>[r.name,r]))!=null?a:[]),e.id,e.createdAt,e.updatedAt)}function S(e){return{name:e.name,body:O(e.body),tags:Array.from(e.tags.values())}}function B(e){return e.hash!==T(e)}function g(e,t){return m(this,null,function*(){const a=yield s.getTemplate(e);return yield s.upsertTemplate({id:a.id,name:a.name,tags:a.tags,body:a.body,hidden:t})})}h.assignDependencies(g,[s.getTemplate,s.upsertTemplate]);exports.addLayoutOfHelper=w;exports.changeTemplateVisibility=g;exports.createTemplateBodyHelper=c;exports.createTemplateBodyHelperFrom=f;exports.createTemplateHelper=H;exports.createTemplateHelperFrom=L;exports.hasTemplateChanged=B;exports.removeLayoutOfHelper=v;exports.templateHelperToJSON=S;exports.updateLayoutOfHelper=F;
1
+ "use strict";var m=(e,t,a)=>new Promise((r,n)=>{var o=i=>{try{u(a.next(i))}catch(p){n(p)}},s=i=>{try{u(a.throw(i))}catch(p){n(p)}},u=i=>i.done?r(i.value):Promise.resolve(i.value).then(o,s);u((a=a.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../methods-C85_VqKZ.js"),H=require("../decorator-C2gcn2rK.js"),y=require("../index-CVa-i8Jy.js"),d=require("../templates-D7C0TH1C.js");function c(e,t="",a=[],r=[],n){var o;return{version:2,dateField:t,layouts:a,filters:new Map((o=r==null?void 0:r.map(s=>[s.name,s]))!=null?o:[]),grid:n,index:e}}function f(e){return c(e.index,e.dateField,e.layouts.map(t=>d.createLayoutHelperFrom(t)),e.filters,e.grid)}function O(e){return{version:e.version,dateField:e.dateField,layouts:e.layouts.map(t=>d.layoutHelperToJSON(t)),filters:Array.from(e.filters.values()),grid:e.grid,index:e.index}}function w(e,t,a){if(e.layouts.some(r=>r.id===t.id))throw new Error(`Layout "${t.id}" already exists`);return e.layouts.splice(a!=null?a:e.layouts.length,0,t),e}function v(e,t){const a=e;return a.layouts=e.layouts.filter(r=>r.id!==t.id),e}function F(e,t,a){const r=e.layouts.findIndex(o=>o.id===t.id);if(r<0)throw new Error(`Layout "${t.id}" not found`);const n=e;return n.layouts[r]=a,e}function T(e){return y.objectHash({name:e.name,body:e.body,tags:e.tags})}function g(e="",t,a=new Map,r="",n=new Date,o){const s={id:r,name:e,body:t!=null?t:c(),tags:a,createdAt:n,updatedAt:o,hash:""};return s.hash=T(s),s}function L(e){var t,a;return g(e.name,f(e.body),new Map((a=(t=e.tags)==null?void 0:t.map(r=>[r.name,r]))!=null?a:[]),e.id,e.createdAt,e.updatedAt)}function S(e){return{name:e.name,body:O(e.body),tags:Array.from(e.tags.values())}}function B(e){return e.hash!==T(e)}function h(e,t){return m(this,null,function*(){const a=yield l.getTemplate(e);return yield l.upsertTemplate({id:a.id,name:a.name,tags:a.tags,body:a.body,hidden:t})})}H.assignDependencies(h,[l.getTemplate,l.upsertTemplate]);exports.addLayoutOfHelper=w;exports.changeTemplateVisibility=h;exports.createTemplateBodyHelper=c;exports.createTemplateBodyHelperFrom=f;exports.createTemplateHelper=g;exports.createTemplateHelperFrom=L;exports.hasTemplateChanged=B;exports.removeLayoutOfHelper=v;exports.templateHelperToJSON=S;exports.updateLayoutOfHelper=F;
2
2
  //# sourceMappingURL=templates.js.map