@ezpaarse-project/ezreeport-sdk-js 2.2.0-rc.1 → 3.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENCE.txt +276 -276
  2. package/LICENSE.txt +2 -2
  3. package/dist/auth.d.ts +2 -6
  4. package/dist/auth.mjs +1 -1
  5. package/dist/elastic.js.map +1 -1
  6. package/dist/elastic.mjs +15 -10
  7. package/dist/elastic.mjs.map +1 -1
  8. package/dist/generations.js +1 -1
  9. package/dist/generations.mjs +1 -1
  10. package/dist/health.js.map +1 -1
  11. package/dist/health.mjs.map +1 -1
  12. package/dist/helpers/aggregations.d.ts +13 -2
  13. package/dist/helpers/aggregations.js.map +1 -1
  14. package/dist/helpers/aggregations.mjs.map +1 -1
  15. package/dist/helpers/generations.js +1 -1
  16. package/dist/helpers/generations.mjs +2 -2
  17. package/dist/helpers/permissions.mjs +1 -1
  18. package/dist/helpers/task-presets.js +1 -1
  19. package/dist/helpers/task-presets.mjs +1 -1
  20. package/dist/helpers/tasks.js +1 -1
  21. package/dist/helpers/tasks.mjs +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.mjs +1 -1
  25. package/dist/methods-B1u-wrM_.js +2 -0
  26. package/dist/methods-B1u-wrM_.js.map +1 -0
  27. package/dist/{methods-DBF2NkuE.mjs → methods-CBNMk0T-.mjs} +6 -10
  28. package/dist/methods-CBNMk0T-.mjs.map +1 -0
  29. package/dist/{methods-DTp_pakZ.mjs → methods-CEARrYHM.mjs} +2 -2
  30. package/dist/{methods-DTp_pakZ.mjs.map → methods-CEARrYHM.mjs.map} +1 -1
  31. package/dist/methods-CXuFuv8n.js.map +1 -1
  32. package/dist/{methods-Dmlyuich.js → methods-DbOs99Zw.js} +2 -2
  33. package/dist/methods-DbOs99Zw.js.map +1 -0
  34. package/dist/methods-DkGCHQdm.mjs +144 -0
  35. package/dist/methods-DkGCHQdm.mjs.map +1 -0
  36. package/dist/{methods-CtggvGhM.js → methods-YvctuH6v.js} +2 -2
  37. package/dist/{methods-CtggvGhM.js.map → methods-YvctuH6v.js.map} +1 -1
  38. package/dist/{methods-CN4gtKgL.mjs → methods-k68hJDbY.mjs} +20 -25
  39. package/dist/methods-k68hJDbY.mjs.map +1 -0
  40. package/dist/namespaces.d.ts +1 -1
  41. package/dist/recurrence.js.map +1 -1
  42. package/dist/recurrence.mjs +15 -13
  43. package/dist/recurrence.mjs.map +1 -1
  44. package/dist/task-activity.js +1 -1
  45. package/dist/task-activity.js.map +1 -1
  46. package/dist/task-activity.mjs +21 -25
  47. package/dist/task-activity.mjs.map +1 -1
  48. package/dist/task-presets.js +1 -1
  49. package/dist/task-presets.mjs +1 -1
  50. package/dist/tasks.js +1 -1
  51. package/dist/tasks.mjs +1 -1
  52. package/package.json +1 -1
  53. package/dist/methods-CN4gtKgL.mjs.map +0 -1
  54. package/dist/methods-DBF2NkuE.mjs.map +0 -1
  55. package/dist/methods-DYG4n79P.js +0 -2
  56. package/dist/methods-DYG4n79P.js.map +0 -1
  57. package/dist/methods-Dmlyuich.js.map +0 -1
  58. package/dist/methods-zHTbr0Jj.mjs +0 -159
  59. package/dist/methods-zHTbr0Jj.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"methods-Dmlyuich.js","sources":["../src/modules/generations/methods.ts"],"sourcesContent":["import { parseISO } from 'date-fns';\nimport { assignPermission } from '~/helpers/permissions/decorator';\nimport { client } from '~/lib/fetch';\nimport { transformCreatedUpdated } from '~/lib/transform';\nimport {\n apiRequestOptionsToQuery,\n type ApiRequestOptions,\n type ApiResponse,\n type ApiResponsePaginated,\n type SdkPaginated,\n} from '~/lib/api';\n\nimport type { Generation, RawGeneration } from './types';\nimport { transformTaskWithoutBody } from '../tasks/methods';\n\nexport const transformGeneration = (generation: RawGeneration): Generation => ({\n ...transformCreatedUpdated(generation),\n start: parseISO(generation.start),\n end: parseISO(generation.end),\n startedAt: generation.startedAt ? parseISO(generation.startedAt) : undefined,\n\n task: generation.task ? transformTaskWithoutBody(generation.task) : undefined,\n});\n\ntype PaginatedGenerations = SdkPaginated<Generation>;\n\nexport async function getAllGenerations(\n opts?: ApiRequestOptions & { include?: string[] },\n): Promise<PaginatedGenerations> {\n const {\n content,\n meta: {\n total, count, page,\n },\n } = await client.fetch<ApiResponsePaginated<RawGeneration>>(\n '/generations',\n {\n query: {\n ...apiRequestOptionsToQuery(opts),\n include: opts?.include,\n },\n },\n );\n\n return {\n items: content.map(transformGeneration),\n total,\n count,\n page,\n };\n}\nassignPermission(getAllGenerations, 'GET /generations');\n\nexport async function getGeneration(\n generationOrId: Generation | string,\n include?: string[],\n): Promise<Generation> {\n const id = typeof generationOrId === 'string' ? generationOrId : generationOrId.id;\n\n const {\n content,\n } = await client.fetch<ApiResponse<RawGeneration>>(`/generations/${id}`, {\n query: { include },\n });\n\n return transformGeneration(content);\n}\nassignPermission(getGeneration, 'GET /generations/:id', true);\n\nexport async function restartGeneration(\n generationOrId: Generation | string,\n): Promise<{ id: string }> {\n const id = typeof generationOrId === 'string' ? generationOrId : generationOrId.id;\n\n const {\n content,\n } = await client.fetch<ApiResponse<{ id: string }>>(`/generations/${id}`, {\n method: 'PUT',\n });\n\n return content;\n}\nassignPermission(restartGeneration, 'PUT /generations/:id');\n"],"names":["transformGeneration","generation","__spreadProps","__spreadValues","transformCreatedUpdated","parseISO","transformTaskWithoutBody","getAllGenerations","opts","__async","content","total","count","page","client","apiRequestOptionsToQuery","assignPermission","getGeneration","generationOrId","include","id","restartGeneration"],"mappings":"g1BAeaA,EAAuBC,GAA2CC,EAAAC,EAAA,GAC1EC,EAAAA,wBAAwBH,CAAU,GADwC,CAE7E,MAAOI,EAAAA,SAASJ,EAAW,KAAK,EAChC,IAAKI,EAAAA,SAASJ,EAAW,GAAG,EAC5B,UAAWA,EAAW,UAAYI,EAAAA,SAASJ,EAAW,SAAS,EAAI,OAEnE,KAAMA,EAAW,KAAOK,EAAAA,yBAAyBL,EAAW,IAAI,EAAI,MACtE,GAIA,SAAsBM,EACpBC,EAC+B,QAAAC,EAAA,sBAC/B,KAAM,CACJ,QAAAC,EACA,KAAM,CACJ,MAAAC,EAAO,MAAAC,EAAO,KAAAC,CAAA,CAChB,EACE,MAAMC,EAAAA,OAAO,MACf,eACA,CACE,MAAOZ,EAAAC,EAAA,GACFY,EAAAA,yBAAyBP,CAAI,GAD3B,CAEL,QAASA,GAAA,YAAAA,EAAM,OAAA,EACjB,CACF,EAGF,MAAO,CACL,MAAOE,EAAQ,IAAIV,CAAmB,EACtC,MAAAW,EACA,MAAAC,EACA,KAAAC,CAAA,CAEJ,GACAG,EAAAA,iBAAiBT,EAAmB,kBAAkB,EAEtD,SAAsBU,EACpBC,EACAC,EACqB,QAAAV,EAAA,sBACrB,MAAMW,EAAK,OAAOF,GAAmB,SAAWA,EAAiBA,EAAe,GAE1E,CACJ,QAAAR,CAAA,EACE,MAAMI,EAAAA,OAAO,MAAkC,gBAAgBM,CAAE,GAAI,CACvE,MAAO,CAAE,QAAAD,CAAA,CAAQ,CAClB,EAED,OAAOnB,EAAoBU,CAAO,CACpC,GACAM,EAAAA,iBAAiBC,EAAe,uBAAwB,EAAI,EAE5D,SAAsBI,EACpBH,EACyB,QAAAT,EAAA,sBACzB,MAAMW,EAAK,OAAOF,GAAmB,SAAWA,EAAiBA,EAAe,GAE1E,CACJ,QAAAR,CAAA,EACE,MAAMI,EAAAA,OAAO,MAAmC,gBAAgBM,CAAE,GAAI,CACxE,OAAQ,KAAA,CACT,EAED,OAAOV,CACT,GACAM,EAAAA,iBAAiBK,EAAmB,sBAAsB"}
@@ -1,159 +0,0 @@
1
- var x = Object.defineProperty, P = Object.defineProperties;
2
- var D = Object.getOwnPropertyDescriptors;
3
- var m = Object.getOwnPropertySymbols;
4
- var l = Object.prototype.hasOwnProperty, E = Object.prototype.propertyIsEnumerable;
5
- var k = (t, e, s) => e in t ? x(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s, u = (t, e) => {
6
- for (var s in e || (e = {}))
7
- l.call(e, s) && k(t, s, e[s]);
8
- if (m)
9
- for (var s of m(e))
10
- E.call(e, s) && k(t, s, e[s]);
11
- return t;
12
- }, f = (t, e) => P(t, D(e));
13
- var y = (t, e) => {
14
- var s = {};
15
- for (var n in t)
16
- l.call(t, n) && e.indexOf(n) < 0 && (s[n] = t[n]);
17
- if (t != null && m)
18
- for (var n of m(t))
19
- e.indexOf(n) < 0 && E.call(t, n) && (s[n] = t[n]);
20
- return s;
21
- };
22
- var r = (t, e, s) => new Promise((n, o) => {
23
- var R = (a) => {
24
- try {
25
- T(s.next(a));
26
- } catch (p) {
27
- o(p);
28
- }
29
- }, q = (a) => {
30
- try {
31
- T(s.throw(a));
32
- } catch (p) {
33
- o(p);
34
- }
35
- }, T = (a) => a.done ? n(a.value) : Promise.resolve(a.value).then(R, q);
36
- T((s = s.apply(t, e)).next());
37
- });
38
- import { parseISO as h } from "date-fns";
39
- import { c as i } from "./fetch-FK-Cz8Ty.mjs";
40
- import { t as w } from "./transform-DrB-Z9tA.mjs";
41
- import { a as L } from "./api-Cwb98wAh.mjs";
42
- import { a as c } from "./decorator-DCiVxI72.mjs";
43
- const $ = (t) => u({}, w(t)), g = (t) => f(u({}, w(t)), {
44
- nextRun: h(t.nextRun),
45
- lastRun: t.lastRun ? h(t.lastRun) : void 0,
46
- namespace: t.namespace && $(t.namespace)
47
- }), d = (t) => f(u({}, g(t)), {
48
- template: t.template
49
- });
50
- function b(t) {
51
- return r(this, null, function* () {
52
- const {
53
- content: e,
54
- meta: {
55
- total: s,
56
- count: n,
57
- page: o
58
- }
59
- } = yield i.fetch(
60
- "/tasks",
61
- {
62
- query: f(u({}, L(t)), {
63
- include: t == null ? void 0 : t.include
64
- })
65
- }
66
- );
67
- return {
68
- items: e.map(g),
69
- total: s,
70
- count: n,
71
- page: o
72
- };
73
- });
74
- }
75
- c(b, "GET /tasks", !0);
76
- function S(t, e) {
77
- return r(this, null, function* () {
78
- const s = typeof t == "string" ? t : t.id;
79
- if (!s)
80
- throw new Error("Task id is required");
81
- const {
82
- content: n
83
- } = yield i.fetch(`/tasks/${s}`, {
84
- query: { include: e }
85
- });
86
- return d(n);
87
- });
88
- }
89
- c(S, "GET /tasks/:id", !0);
90
- function U(t) {
91
- return r(this, null, function* () {
92
- const { content: e } = yield i.fetch(
93
- "/tasks",
94
- {
95
- method: "POST",
96
- body: t
97
- }
98
- );
99
- return d(e);
100
- });
101
- }
102
- c(U, "POST /tasks", !0);
103
- function G(s) {
104
- return r(this, null, function* () {
105
- var n = s, { id: t } = n, e = y(n, ["id"]);
106
- const {
107
- content: o
108
- } = yield i.fetch(
109
- `/tasks/${t}`,
110
- {
111
- method: "PUT",
112
- body: e
113
- }
114
- );
115
- return d(o);
116
- });
117
- }
118
- c(G, "PUT /tasks/:id", !0);
119
- function v(t) {
120
- return r(this, null, function* () {
121
- const e = typeof t == "string" ? t : t.id;
122
- if (!e)
123
- return !1;
124
- const {
125
- content: s
126
- } = yield i.fetch(
127
- `/tasks/${e}`,
128
- { method: "DELETE" }
129
- );
130
- return s.deleted;
131
- });
132
- }
133
- c(v, "DELETE /tasks/:id", !0);
134
- function A(t) {
135
- return r(this, null, function* () {
136
- const e = typeof t == "string" ? t : t.id;
137
- if (!e)
138
- throw new Error("Task id is required");
139
- const {
140
- content: s
141
- } = yield i.fetch(
142
- `/tasks/${e}/extends`,
143
- { method: "DELETE" }
144
- );
145
- return d(s);
146
- });
147
- }
148
- c(A, "DELETE /tasks/:id/extends", !0);
149
- export {
150
- S as a,
151
- A as b,
152
- U as c,
153
- v as d,
154
- g as e,
155
- b as g,
156
- d as t,
157
- G as u
158
- };
159
- //# sourceMappingURL=methods-zHTbr0Jj.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"methods-zHTbr0Jj.mjs","sources":["../src/modules/namespaces/methods.ts","../src/modules/tasks/methods.ts"],"sourcesContent":["import { transformCreatedUpdated } from '~/lib/transform';\n\nimport type { Namespace, RawNamespace } from './types';\n\nexport const transformNamespace = (n: RawNamespace): Namespace => ({\n ...transformCreatedUpdated(n),\n});\n","import { parseISO } from 'date-fns';\n\nimport { client } from '~/lib/fetch';\nimport { transformCreatedUpdated } from '~/lib/transform';\nimport {\n apiRequestOptionsToQuery,\n type ApiResponse,\n type ApiResponsePaginated,\n type ApiRequestOptions,\n type ApiDeletedResponse,\n type SdkPaginated,\n} from '~/lib/api';\n\nimport { assignPermission } from '~/helpers/permissions/decorator';\n\nimport { transformNamespace } from '~/modules/namespaces/methods';\nimport type { RawNamespace } from '~/modules/namespaces/types';\n\nimport type { InputTask, RawTask, Task } from './types';\n\nexport const transformTaskWithoutBody = (t: Omit<RawTask, 'template'>): Omit<Task, 'template'> => ({\n ...transformCreatedUpdated(t),\n nextRun: parseISO(t.nextRun),\n lastRun: t.lastRun ? parseISO(t.lastRun) : undefined,\n namespace: t.namespace && transformNamespace(t.namespace as RawNamespace),\n});\n\nexport const transformTask = (t: RawTask): Task => ({\n ...transformTaskWithoutBody(t),\n template: t.template,\n});\n\ntype PaginatedTasks = SdkPaginated<Omit<Task, 'template'>>;\n\n/**\n * Get all available tasks\n *\n * @returns All tasks' info\n */\nexport async function getAllTasks(\n opts?: ApiRequestOptions & { include?: string[] },\n): Promise<PaginatedTasks> {\n const {\n content,\n meta: {\n total, count, page,\n },\n } = await client.fetch<ApiResponsePaginated<Omit<RawTask, 'template'>>>(\n '/tasks',\n {\n query: {\n ...apiRequestOptionsToQuery(opts),\n include: opts?.include,\n },\n },\n );\n\n return {\n items: content.map(transformTaskWithoutBody),\n total,\n count,\n page,\n };\n}\nassignPermission(getAllTasks, 'GET /tasks', true);\n\n/**\n * Get task info\n *\n * @param taskOrId Task or Task's id\n * @param include Fields to include\n *\n * @returns Task info\n */\nexport async function getTask(\n taskOrId: Omit<Task, 'template'> | string,\n include?: string[],\n): Promise<Task> {\n const id = typeof taskOrId === 'string' ? taskOrId : taskOrId.id;\n if (!id) {\n throw new Error('Task id is required');\n }\n\n const {\n content,\n } = await client.fetch<ApiResponse<RawTask>>(`/tasks/${id}`, {\n query: { include },\n });\n\n return transformTask(content);\n}\nassignPermission(getTask, 'GET /tasks/:id', true);\n\n/**\n * Create a new task\n *\n * @param task Task's data\n *\n * @returns Created task's info\n */\nexport async function createTask(\n task: InputTask,\n): Promise<Task> {\n const { content } = await client.fetch<ApiResponse<RawTask>>(\n '/tasks',\n {\n method: 'POST',\n body: task,\n },\n );\n\n return transformTask(content);\n}\nassignPermission(createTask, 'POST /tasks', true);\n\n/**\n * Update or create a task\n *\n * @param task Task's data **with id**\n *\n * @returns Updated/Created Task's info\n */\nexport async function upsertTask(\n { id, ...task }: InputTask & { id: Task['id'] },\n): Promise<Task> {\n const {\n content,\n } = await client.fetch<ApiResponse<RawTask>>(\n `/tasks/${id}`,\n {\n method: 'PUT',\n body: task,\n },\n );\n\n return transformTask(content);\n}\nassignPermission(upsertTask, 'PUT /tasks/:id', true);\n\n/**\n * Delete a task\n *\n * @param taskOrId Task or Task's id\n *\n * @returns Whether the task was deleted\n */\nexport async function deleteTask(\n taskOrId: Omit<Task, 'template'> | string,\n): Promise<boolean> {\n const id = typeof taskOrId === 'string' ? taskOrId : taskOrId.id;\n if (!id) {\n return false;\n }\n\n const {\n content,\n } = await client.fetch<ApiDeletedResponse>(\n `/tasks/${id}`,\n { method: 'DELETE' },\n );\n\n return content.deleted;\n}\nassignPermission(deleteTask, 'DELETE /tasks/:id', true);\n\n/**\n * Unlink a task from it's template\n *\n * @param taskOrId Task or Task's id\n *\n * @returns Updated task\n */\nexport async function unlinkTaskFromTemplate(\n taskOrId: Omit<Task, 'template'> | string,\n): Promise<Task> {\n const id = typeof taskOrId === 'string' ? taskOrId : taskOrId.id;\n if (!id) {\n throw new Error('Task id is required');\n }\n\n const {\n content,\n } = await client.fetch<ApiResponse<RawTask>>(\n `/tasks/${id}/extends`,\n { method: 'DELETE' },\n );\n\n return transformTask(content);\n}\nassignPermission(unlinkTaskFromTemplate, 'DELETE /tasks/:id/extends', true);\n"],"names":["transformNamespace","n","__spreadValues","transformCreatedUpdated","transformTaskWithoutBody","__spreadProps","parseISO","transformTask","getAllTasks","opts","__async","content","total","count","page","client","apiRequestOptionsToQuery","assignPermission","getTask","taskOrId","include","id","createTask","task","upsertTask","_a","_b","__objRest","deleteTask","unlinkTaskFromTemplate"],"mappings":"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"}