@plutonhq/core-frontend 0.1.22 → 0.1.23

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 (58) hide show
  1. package/dist-lib/@types/plans.d.ts +11 -20
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +49 -47
  4. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  5. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts +7 -4
  6. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts.map +1 -1
  7. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js +177 -52
  8. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js.map +1 -1
  9. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts +9 -0
  10. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts.map +1 -0
  11. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js +62 -0
  12. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js.map +1 -0
  13. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js +2 -2
  14. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js.map +1 -1
  15. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +56 -40
  16. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  17. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts.map +1 -1
  18. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +16 -8
  19. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
  20. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  21. package/dist-lib/components/common/Icon/Icon.js +15 -1
  22. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  23. package/dist-lib/components/index.d.ts +1 -0
  24. package/dist-lib/components/index.d.ts.map +1 -1
  25. package/dist-lib/components.js +86 -84
  26. package/dist-lib/components.js.map +1 -1
  27. package/dist-lib/providers/s3compatible.png +0 -0
  28. package/dist-lib/services/plans.d.ts +13 -1
  29. package/dist-lib/services/plans.d.ts.map +1 -1
  30. package/dist-lib/services/plans.js +88 -61
  31. package/dist-lib/services/plans.js.map +1 -1
  32. package/dist-lib/services/settings.d.ts.map +1 -1
  33. package/dist-lib/services/settings.js +25 -24
  34. package/dist-lib/services/settings.js.map +1 -1
  35. package/dist-lib/services.js +102 -100
  36. package/dist-lib/styles/core-frontend.css +1 -1
  37. package/dist-lib/utils/constants.d.ts.map +1 -1
  38. package/dist-lib/utils/constants.js +28 -5
  39. package/dist-lib/utils/constants.js.map +1 -1
  40. package/dist-lib/utils/helpers.d.ts +1 -0
  41. package/dist-lib/utils/helpers.d.ts.map +1 -1
  42. package/dist-lib/utils/helpers.js +17 -10
  43. package/dist-lib/utils/helpers.js.map +1 -1
  44. package/dist-lib/utils.js +28 -27
  45. package/package.json +1 -1
  46. package/src/@types/plans.ts +11 -20
  47. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +4 -4
  48. package/src/components/Plan/PlanSettings/PlanNotificationSettings.tsx +179 -47
  49. package/src/components/Plan/PlanSettings/PlanNotificationSettingsTester.tsx +85 -0
  50. package/src/components/Plan/PlanSettings/PlanPruneSettings.tsx +2 -2
  51. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +71 -0
  52. package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +6 -1
  53. package/src/components/common/Icon/Icon.tsx +16 -0
  54. package/src/components/index.ts +1 -0
  55. package/src/services/plans.ts +38 -1
  56. package/src/services/settings.ts +2 -2
  57. package/src/utils/constants.ts +23 -0
  58. package/src/utils/helpers.ts +9 -0
@@ -1,7 +1,7 @@
1
- import { useQuery as y, useMutation as r, useQueryClient as c } from "@tanstack/react-query";
1
+ import { useQuery as f, useMutation as r, useQueryClient as c } from "@tanstack/react-query";
2
2
  import { toast as u } from "react-toastify";
3
3
  import { API_URL as a } from "../utils/constants.js";
4
- async function g() {
4
+ async function m() {
5
5
  const n = new URL(`${a}/plans`), t = await (await fetch(n.toString(), {
6
6
  method: "GET",
7
7
  credentials: "include"
@@ -11,9 +11,9 @@ async function g() {
11
11
  return t;
12
12
  }
13
13
  function U() {
14
- return y({
14
+ return f({
15
15
  queryKey: ["plans"],
16
- queryFn: () => g(),
16
+ queryFn: () => m(),
17
17
  refetchOnMount: !0,
18
18
  retry: !1
19
19
  });
@@ -31,8 +31,8 @@ async function P(n) {
31
31
  }
32
32
  return o;
33
33
  }
34
- function A(n) {
35
- return y({
34
+ function B(n) {
35
+ return f({
36
36
  queryKey: ["plan", n],
37
37
  queryFn: () => P(n),
38
38
  refetchOnMount: !0,
@@ -40,7 +40,7 @@ function A(n) {
40
40
  staleTime: 0
41
41
  });
42
42
  }
43
- async function E(n) {
43
+ async function j(n) {
44
44
  const e = new URL(`${a}/plans/${n}/logs`), t = await fetch(e.toString(), {
45
45
  method: "GET",
46
46
  credentials: "include"
@@ -51,16 +51,16 @@ async function E(n) {
51
51
  }
52
52
  return o;
53
53
  }
54
- function B(n) {
55
- return y({
54
+ function D(n) {
55
+ return f({
56
56
  queryKey: ["planLogs", n],
57
- queryFn: () => E(n),
57
+ queryFn: () => j(n),
58
58
  refetchOnMount: !0,
59
59
  retry: !1
60
60
  });
61
61
  }
62
- async function j(n) {
63
- var w, f;
62
+ async function E(n) {
63
+ var w, y;
64
64
  const e = await fetch(`${a}/plans/${n}/logs/download`, {
65
65
  method: "GET",
66
66
  credentials: "include"
@@ -70,21 +70,21 @@ async function j(n) {
70
70
  const l = await e.json();
71
71
  throw new Error(l.error);
72
72
  }
73
- const t = ((w = e.headers.get("content-disposition")) == null ? void 0 : w.split("filename=")[1]) || `plan-${n}.log`, o = (f = e.body) == null ? void 0 : f.getReader(), s = new ReadableStream({
73
+ const t = ((w = e.headers.get("content-disposition")) == null ? void 0 : w.split("filename=")[1]) || `plan-${n}.log`, o = (y = e.body) == null ? void 0 : y.getReader(), s = new ReadableStream({
74
74
  async start(l) {
75
75
  for (; ; ) {
76
- const { done: h, value: m } = await o.read();
76
+ const { done: h, value: g } = await o.read();
77
77
  if (h) break;
78
- l.enqueue(m);
78
+ l.enqueue(g);
79
79
  }
80
80
  l.close(), o.releaseLock();
81
81
  }
82
82
  }), d = await new Response(s).blob(), p = window.URL.createObjectURL(d), i = document.createElement("a");
83
83
  i.href = p, i.download = t, document.body.appendChild(i), i.click(), i.remove(), window.URL.revokeObjectURL(p);
84
84
  }
85
- function D() {
85
+ function H() {
86
86
  return r({
87
- mutationFn: j,
87
+ mutationFn: E,
88
88
  onSuccess: (n) => {
89
89
  console.log("# Logs Downloaded! :", n);
90
90
  },
@@ -115,7 +115,7 @@ function G() {
115
115
  }
116
116
  });
117
117
  }
118
- async function k(n) {
118
+ async function q(n) {
119
119
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
120
120
  console.log("newPlan :", n);
121
121
  const o = await (await fetch(`${a}/plans/${n.id}`, {
@@ -128,10 +128,10 @@ async function k(n) {
128
128
  throw new Error(o.error);
129
129
  return o;
130
130
  }
131
- function H() {
131
+ function N() {
132
132
  const n = c();
133
133
  return r({
134
- mutationFn: k,
134
+ mutationFn: q,
135
135
  onSuccess: (e) => {
136
136
  var o;
137
137
  console.log("# Plan Updated! :", e);
@@ -140,7 +140,7 @@ function H() {
140
140
  }
141
141
  });
142
142
  }
143
- async function q({ id: n, removeRemoteData: e }) {
143
+ async function k({ id: n, removeRemoteData: e }) {
144
144
  const t = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), s = await (await fetch(`${a}/plans/${n}?removeData=${e}`, {
145
145
  method: "DELETE",
146
146
  credentials: "include",
@@ -150,10 +150,10 @@ async function q({ id: n, removeRemoteData: e }) {
150
150
  throw new Error(s.error);
151
151
  return s;
152
152
  }
153
- function M() {
153
+ function I() {
154
154
  const n = c();
155
155
  return r({
156
- mutationFn: q,
156
+ mutationFn: k,
157
157
  onSuccess: (e) => {
158
158
  console.log("# Plan Removed! :", e), n.invalidateQueries({ queryKey: ["plans"] });
159
159
  }
@@ -169,7 +169,7 @@ async function $(n) {
169
169
  throw new Error(o.error);
170
170
  return o;
171
171
  }
172
- function N() {
172
+ function J() {
173
173
  const n = c();
174
174
  return r({
175
175
  mutationFn: $,
@@ -178,7 +178,7 @@ function N() {
178
178
  }
179
179
  });
180
180
  }
181
- async function v(n) {
181
+ async function T(n) {
182
182
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await (await fetch(`${a}/plans/${n}/action/pause`, {
183
183
  method: "POST",
184
184
  credentials: "include",
@@ -188,16 +188,16 @@ async function v(n) {
188
188
  throw new Error(o.error);
189
189
  return o;
190
190
  }
191
- function I() {
191
+ function M() {
192
192
  const n = c();
193
193
  return r({
194
- mutationFn: v,
194
+ mutationFn: T,
195
195
  onSuccess: (e, t) => {
196
196
  console.log("# Backup Paused! :", e, t), n.invalidateQueries({ queryKey: ["plan", t] }), n.invalidateQueries({ queryKey: ["plans"] });
197
197
  }
198
198
  });
199
199
  }
200
- async function C(n) {
200
+ async function v(n) {
201
201
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await (await fetch(`${a}/plans/${n}/action/resume`, {
202
202
  method: "POST",
203
203
  credentials: "include",
@@ -207,16 +207,16 @@ async function C(n) {
207
207
  throw new Error(o.error);
208
208
  return o;
209
209
  }
210
- function J() {
210
+ function x() {
211
211
  const n = c();
212
212
  return r({
213
- mutationFn: C,
213
+ mutationFn: v,
214
214
  onSuccess: (e, t) => {
215
215
  console.log("# Backup Resumed! :", e, t), n.invalidateQueries({ queryKey: ["plan", t] }), n.invalidateQueries({ queryKey: ["plans"] });
216
216
  }
217
217
  });
218
218
  }
219
- async function R(n) {
219
+ async function C(n) {
220
220
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await (await fetch(`${a}/plans/${n}/action/prune`, {
221
221
  method: "POST",
222
222
  credentials: "include",
@@ -226,10 +226,10 @@ async function R(n) {
226
226
  throw new Error(o.error);
227
227
  return o;
228
228
  }
229
- function x() {
229
+ function _() {
230
230
  const n = c();
231
231
  return r({
232
- mutationFn: R,
232
+ mutationFn: C,
233
233
  onError: (e) => {
234
234
  console.log("error :", e == null ? void 0 : e.message), u.error(e.message || "Error Removing Old Backups.");
235
235
  },
@@ -238,7 +238,7 @@ function x() {
238
238
  }
239
239
  });
240
240
  }
241
- async function T(n) {
241
+ async function R(n) {
242
242
  const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await (await fetch(`${a}/plans/${n}/action/unlock`, {
243
243
  method: "POST",
244
244
  credentials: "include",
@@ -248,10 +248,10 @@ async function T(n) {
248
248
  throw new Error(o.error);
249
249
  return o;
250
250
  }
251
- function _() {
251
+ function z() {
252
252
  const n = c();
253
253
  return r({
254
- mutationFn: T,
254
+ mutationFn: R,
255
255
  onError: (e) => {
256
256
  console.log("error :", e == null ? void 0 : e.message), u.error(e.message || "Error Removing stale locks.");
257
257
  },
@@ -271,7 +271,7 @@ async function O(n, e = "backup") {
271
271
  throw new Error(s.error);
272
272
  return s;
273
273
  }
274
- function z() {
274
+ function V() {
275
275
  return r({
276
276
  // queryKey: ['planActiveBackups-' + planId],
277
277
  mutationFn: ({ planId: n, type: e }) => O(n, e)
@@ -295,7 +295,7 @@ async function K({
295
295
  throw new Error(i.error);
296
296
  return i;
297
297
  }
298
- function V() {
298
+ function W() {
299
299
  const n = c();
300
300
  return r({
301
301
  mutationFn: K,
@@ -317,7 +317,7 @@ async function L({ planId: n }) {
317
317
  throw new Error(t.error);
318
318
  return t;
319
319
  }
320
- function W() {
320
+ function X() {
321
321
  const n = c();
322
322
  return r({
323
323
  mutationFn: L,
@@ -329,36 +329,63 @@ function W() {
329
329
  }
330
330
  });
331
331
  }
332
+ async function F(n) {
333
+ console.log("payload :", n);
334
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await fetch(`${a}/plans/${n.planId}/action/test-notification`, {
335
+ method: "POST",
336
+ headers: e,
337
+ credentials: "include",
338
+ body: JSON.stringify(n)
339
+ });
340
+ if (!t.ok) {
341
+ const s = await t.json();
342
+ throw new Error(s.error);
343
+ }
344
+ return await t.json();
345
+ }
346
+ function Y() {
347
+ return r({
348
+ mutationFn: F,
349
+ onSuccess: (n) => {
350
+ console.log("# Test notification request sent successfully! :", n);
351
+ },
352
+ onError: (n) => {
353
+ console.log("# Test notification request failed! :", n);
354
+ }
355
+ });
356
+ }
332
357
  export {
333
358
  O as checkActiveBackupsOrRestore,
334
359
  L as checkPlanIntegrity,
335
360
  S as createPlan,
336
- q as deletePlan,
361
+ k as deletePlan,
337
362
  K as deleteReplicationStorage,
338
- j as downloadPlanLogs,
339
- g as getAllPlans,
340
- E as getPlanLogs,
363
+ E as downloadPlanLogs,
364
+ m as getAllPlans,
365
+ j as getPlanLogs,
341
366
  P as getSinglePlan,
342
- v as pausePlan,
367
+ T as pausePlan,
343
368
  $ as performBackup,
344
- R as prunePlan,
345
- C as resumePlan,
346
- T as unlockPlan,
347
- k as updatePlan,
348
- z as useCheckActiveBackupsOrRestore,
349
- W as useCheckPlanIntegrity,
369
+ C as prunePlan,
370
+ v as resumePlan,
371
+ F as sendTestNotificationRequest,
372
+ R as unlockPlan,
373
+ q as updatePlan,
374
+ V as useCheckActiveBackupsOrRestore,
375
+ X as useCheckPlanIntegrity,
350
376
  G as useCreatePlan,
351
- M as useDeletePlan,
352
- V as useDeleteReplicationStorage,
353
- D as useGetDownloadLogs,
354
- A as useGetPlan,
355
- B as useGetPlanLogs,
377
+ I as useDeletePlan,
378
+ W as useDeleteReplicationStorage,
379
+ H as useGetDownloadLogs,
380
+ B as useGetPlan,
381
+ D as useGetPlanLogs,
356
382
  U as useGetPlans,
357
- I as usePausePlan,
358
- N as usePerformBackup,
359
- x as usePrunePlan,
360
- J as useResumePlan,
361
- _ as useUnlockPlan,
362
- H as useUpdatePlan
383
+ M as usePausePlan,
384
+ J as usePerformBackup,
385
+ _ as usePrunePlan,
386
+ x as useResumePlan,
387
+ Y as useTestNotification,
388
+ z as useUnlockPlan,
389
+ N as useUpdatePlan
363
390
  };
364
391
  //# sourceMappingURL=plans.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sources":["../../src/services/plans.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { toast } from 'react-toastify';\r\nimport { API_URL } from '../utils/constants';\r\nimport { NewPlanSettings, Plan } from '../@types/plans';\r\n\r\n// Get All Plans\r\nexport async function getAllPlans() {\r\n const url = new URL(`${API_URL}/plans`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlans() {\r\n return useQuery({\r\n queryKey: ['plans'],\r\n queryFn: () => getAllPlans(),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get Single Plan\r\nexport async function getSinglePlan(id: string) {\r\n if (!id) {\r\n throw new Error('ID Not Provided.');\r\n }\r\n const url = new URL(`${API_URL}/plans/${id}`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n const error = new Error(data.error) as Error & { status?: number };\r\n error.status = res.status;\r\n throw error;\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlan(id: string) {\r\n return useQuery({\r\n queryKey: ['plan', id],\r\n queryFn: () => getSinglePlan(id),\r\n refetchOnMount: true,\r\n retry: false,\r\n staleTime: 0,\r\n });\r\n}\r\n\r\n// Get Plan Logs\r\nexport async function getPlanLogs(planId: string) {\r\n const url = new URL(`${API_URL}/plans/${planId}/logs`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n const error = new Error(data.error) as Error & { status?: number };\r\n error.status = res.status;\r\n throw error;\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlanLogs(planId: string) {\r\n return useQuery({\r\n queryKey: ['planLogs', planId],\r\n queryFn: () => getPlanLogs(planId),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Download Plan Logs\r\nexport async function downloadPlanLogs(id: string) {\r\n const res = await fetch(`${API_URL}/plans/${id}/logs/download`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n\r\n const filename = res.headers.get('content-disposition')?.split('filename=')[1] || `plan-${id}.log`;\r\n\r\n // Use streams API\r\n const reader = res.body?.getReader();\r\n const stream = new ReadableStream({\r\n async start(controller) {\r\n while (true) {\r\n const { done, value } = await reader!.read();\r\n if (done) break;\r\n controller.enqueue(value);\r\n }\r\n controller.close();\r\n reader!.releaseLock();\r\n },\r\n });\r\n\r\n // Create download from stream\r\n const blob = await new Response(stream).blob();\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\nexport function useGetDownloadLogs() {\r\n return useMutation({\r\n mutationFn: downloadPlanLogs,\r\n onSuccess: (res) => {\r\n console.log('# Logs Downloaded! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Logs Download Failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Create New Plan\r\nexport async function createPlan(newPlan: NewPlanSettings) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n console.log('newPlan :', newPlan);\r\n const res = await fetch(`${API_URL}/plans`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(newPlan),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error || data.result);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCreatePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPlan,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Plan Created! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// UpdatePlan\r\nexport async function updatePlan(updatePayload: { id: string; data: Partial<Plan> }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n console.log('newPlan :', updatePayload);\r\n const res = await fetch(`${API_URL}/plans/${updatePayload.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ plan: updatePayload.data }),\r\n });\r\n const data = await res.json();\r\n console.log('data :', data);\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUpdatePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updatePlan,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Plan Updated! :', res);\r\n const planID = res?.result?.id;\r\n if (planID) {\r\n queryClient.invalidateQueries({ queryKey: ['plan', planID] });\r\n }\r\n\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Plan\r\nexport async function deletePlan({ id, removeRemoteData }: { id: string; removeRemoteData: boolean }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}?removeData=${removeRemoteData}`, {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeletePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deletePlan,\r\n onSuccess: (res) => {\r\n console.log('# Plan Removed! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Perform Backup\r\nexport async function performBackup(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/backup`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePerformBackup() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: performBackup,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Started! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Pause Backup\r\nexport async function pausePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/pause`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePausePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: pausePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Paused! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Resume Backup\r\nexport async function resumePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/resume`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useResumePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: resumePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Resumed! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Prune Backup Plan\r\nexport async function prunePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/prune`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePrunePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: prunePlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing Old Backups.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(res?.message || `Removed Old Backups Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Unlock Backup Plan\r\nexport async function unlockPlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/unlock`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUnlockPlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: unlockPlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing stale locks.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(`Removed Stale locks Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Get Backup Progress\r\nexport async function checkActiveBackupsOrRestore(planId: string, type: 'backup' | 'restore' = 'backup') {\r\n const url = new URL(`${API_URL}/plans/${planId}/checkactive`);\r\n url.searchParams.append('type', type);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckActiveBackupsOrRestore() {\r\n return useMutation({\r\n // queryKey: ['planActiveBackups-' + planId],\r\n mutationFn: ({ planId, type }: { planId: string; type: 'backup' | 'restore' }) => checkActiveBackupsOrRestore(planId, type),\r\n // refetchOnMount: true,\r\n });\r\n}\r\n\r\n// Remove Replication Storage\r\nexport async function deleteReplicationStorage({\r\n planID,\r\n storageID,\r\n storagePath,\r\n removeData,\r\n replicationId,\r\n}: {\r\n planID: string;\r\n storageID: string;\r\n storagePath: string;\r\n removeData: boolean;\r\n replicationId?: string;\r\n}) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planID}/action/delete-replication-storage`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ storageID, storagePath, removeData, replicationId }),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeleteReplicationStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteReplicationStorage,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error removing replication storage.`);\r\n },\r\n onSuccess: (res, variables) => {\r\n console.log('# Replication Storage Removed! :', res, variables);\r\n queryClient.invalidateQueries({ queryKey: ['plan', variables.planID] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n toast.success(res?.message || `Replication storage removed successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\nexport async function checkPlanIntegrity({ planId }: { planId: string }) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planId}/action/checkintegrity`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckPlanIntegrity() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: checkPlanIntegrity,\r\n onSuccess: (res, payload) => {\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n console.log('res :', payload, res);\r\n },\r\n onError: (error, payload) => {\r\n console.error('Error checking plan integrity for planId:', payload.planId, error);\r\n toast.error(`Error checking plan integrity. ${error instanceof Error ? error.message : 'Unknown error'}`, { autoClose: false });\r\n },\r\n });\r\n}\r\n"],"names":["getAllPlans","url","API_URL","data","useGetPlans","useQuery","getSinglePlan","id","res","error","useGetPlan","getPlanLogs","planId","useGetPlanLogs","downloadPlanLogs","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetDownloadLogs","useMutation","createPlan","newPlan","header","useCreatePlan","queryClient","useQueryClient","updatePlan","updatePayload","useUpdatePlan","planID","deletePlan","removeRemoteData","useDeletePlan","performBackup","usePerformBackup","pausePlan","usePausePlan","resumePlan","useResumePlan","prunePlan","usePrunePlan","toast","unlockPlan","useUnlockPlan","checkActiveBackupsOrRestore","type","useCheckActiveBackupsOrRestore","deleteReplicationStorage","storageID","storagePath","removeData","replicationId","useDeleteReplicationStorage","variables","checkPlanIntegrity","useCheckPlanIntegrity","payload"],"mappings":"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"}
1
+ {"version":3,"file":"plans.js","sources":["../../src/services/plans.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { toast } from 'react-toastify';\r\nimport { API_URL } from '../utils/constants';\r\nimport { NewPlanSettings, Plan, PlanNotification } from '../@types/plans';\r\n\r\n// Get All Plans\r\nexport async function getAllPlans() {\r\n const url = new URL(`${API_URL}/plans`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlans() {\r\n return useQuery({\r\n queryKey: ['plans'],\r\n queryFn: () => getAllPlans(),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get Single Plan\r\nexport async function getSinglePlan(id: string) {\r\n if (!id) {\r\n throw new Error('ID Not Provided.');\r\n }\r\n const url = new URL(`${API_URL}/plans/${id}`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n const error = new Error(data.error) as Error & { status?: number };\r\n error.status = res.status;\r\n throw error;\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlan(id: string) {\r\n return useQuery({\r\n queryKey: ['plan', id],\r\n queryFn: () => getSinglePlan(id),\r\n refetchOnMount: true,\r\n retry: false,\r\n staleTime: 0,\r\n });\r\n}\r\n\r\n// Get Plan Logs\r\nexport async function getPlanLogs(planId: string) {\r\n const url = new URL(`${API_URL}/plans/${planId}/logs`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n const error = new Error(data.error) as Error & { status?: number };\r\n error.status = res.status;\r\n throw error;\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlanLogs(planId: string) {\r\n return useQuery({\r\n queryKey: ['planLogs', planId],\r\n queryFn: () => getPlanLogs(planId),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Download Plan Logs\r\nexport async function downloadPlanLogs(id: string) {\r\n const res = await fetch(`${API_URL}/plans/${id}/logs/download`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n\r\n const filename = res.headers.get('content-disposition')?.split('filename=')[1] || `plan-${id}.log`;\r\n\r\n // Use streams API\r\n const reader = res.body?.getReader();\r\n const stream = new ReadableStream({\r\n async start(controller) {\r\n while (true) {\r\n const { done, value } = await reader!.read();\r\n if (done) break;\r\n controller.enqueue(value);\r\n }\r\n controller.close();\r\n reader!.releaseLock();\r\n },\r\n });\r\n\r\n // Create download from stream\r\n const blob = await new Response(stream).blob();\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\nexport function useGetDownloadLogs() {\r\n return useMutation({\r\n mutationFn: downloadPlanLogs,\r\n onSuccess: (res) => {\r\n console.log('# Logs Downloaded! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Logs Download Failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Create New Plan\r\nexport async function createPlan(newPlan: NewPlanSettings) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n console.log('newPlan :', newPlan);\r\n const res = await fetch(`${API_URL}/plans`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(newPlan),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error || data.result);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCreatePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPlan,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Plan Created! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// UpdatePlan\r\nexport async function updatePlan(updatePayload: { id: string; data: Partial<Plan> }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n console.log('newPlan :', updatePayload);\r\n const res = await fetch(`${API_URL}/plans/${updatePayload.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ plan: updatePayload.data }),\r\n });\r\n const data = await res.json();\r\n console.log('data :', data);\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUpdatePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updatePlan,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Plan Updated! :', res);\r\n const planID = res?.result?.id;\r\n if (planID) {\r\n queryClient.invalidateQueries({ queryKey: ['plan', planID] });\r\n }\r\n\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Plan\r\nexport async function deletePlan({ id, removeRemoteData }: { id: string; removeRemoteData: boolean }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}?removeData=${removeRemoteData}`, {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeletePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deletePlan,\r\n onSuccess: (res) => {\r\n console.log('# Plan Removed! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Perform Backup\r\nexport async function performBackup(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/backup`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePerformBackup() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: performBackup,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Started! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Pause Backup\r\nexport async function pausePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/pause`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePausePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: pausePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Paused! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Resume Backup\r\nexport async function resumePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/resume`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useResumePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: resumePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Resumed! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Prune Backup Plan\r\nexport async function prunePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/prune`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePrunePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: prunePlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing Old Backups.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(res?.message || `Removed Old Backups Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Unlock Backup Plan\r\nexport async function unlockPlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/unlock`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUnlockPlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: unlockPlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing stale locks.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(`Removed Stale locks Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Get Backup Progress\r\nexport async function checkActiveBackupsOrRestore(planId: string, type: 'backup' | 'restore' = 'backup') {\r\n const url = new URL(`${API_URL}/plans/${planId}/checkactive`);\r\n url.searchParams.append('type', type);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckActiveBackupsOrRestore() {\r\n return useMutation({\r\n // queryKey: ['planActiveBackups-' + planId],\r\n mutationFn: ({ planId, type }: { planId: string; type: 'backup' | 'restore' }) => checkActiveBackupsOrRestore(planId, type),\r\n // refetchOnMount: true,\r\n });\r\n}\r\n\r\n// Remove Replication Storage\r\nexport async function deleteReplicationStorage({\r\n planID,\r\n storageID,\r\n storagePath,\r\n removeData,\r\n replicationId,\r\n}: {\r\n planID: string;\r\n storageID: string;\r\n storagePath: string;\r\n removeData: boolean;\r\n replicationId?: string;\r\n}) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planID}/action/delete-replication-storage`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ storageID, storagePath, removeData, replicationId }),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeleteReplicationStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteReplicationStorage,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error removing replication storage.`);\r\n },\r\n onSuccess: (res, variables) => {\r\n console.log('# Replication Storage Removed! :', res, variables);\r\n queryClient.invalidateQueries({ queryKey: ['plan', variables.planID] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n toast.success(res?.message || `Replication storage removed successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\nexport async function checkPlanIntegrity({ planId }: { planId: string }) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planId}/action/checkintegrity`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckPlanIntegrity() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: checkPlanIntegrity,\r\n onSuccess: (res, payload) => {\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n console.log('res :', payload, res);\r\n },\r\n onError: (error, payload) => {\r\n console.error('Error checking plan integrity for planId:', payload.planId, error);\r\n toast.error(`Error checking plan integrity. ${error instanceof Error ? error.message : 'Unknown error'}`, { autoClose: false });\r\n },\r\n });\r\n}\r\n\r\nexport async function sendTestNotificationRequest(payload: {\r\n planId: string;\r\n notificationCase: string;\r\n notificationChannel: 'webhook' | 'slack' | 'discord';\r\n channelSettings: PlanNotification['webhook'] | PlanNotification['slack'] | PlanNotification['discord'];\r\n}) {\r\n console.log('payload :', payload);\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${payload.planId}/action/test-notification`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify(payload),\r\n });\r\n\r\n // Check if response is ok\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n\r\n const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useTestNotification() {\r\n return useMutation({\r\n mutationFn: sendTestNotificationRequest,\r\n onSuccess: (res) => {\r\n console.log('# Test notification request sent successfully! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Test notification request failed! :', res);\r\n },\r\n });\r\n}\r\n"],"names":["getAllPlans","url","API_URL","data","useGetPlans","useQuery","getSinglePlan","id","res","error","useGetPlan","getPlanLogs","planId","useGetPlanLogs","downloadPlanLogs","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetDownloadLogs","useMutation","createPlan","newPlan","header","useCreatePlan","queryClient","useQueryClient","updatePlan","updatePayload","useUpdatePlan","planID","deletePlan","removeRemoteData","useDeletePlan","performBackup","usePerformBackup","pausePlan","usePausePlan","resumePlan","useResumePlan","prunePlan","usePrunePlan","toast","unlockPlan","useUnlockPlan","checkActiveBackupsOrRestore","type","useCheckActiveBackupsOrRestore","deleteReplicationStorage","storageID","storagePath","removeData","replicationId","useDeleteReplicationStorage","variables","checkPlanIntegrity","useCheckPlanIntegrity","payload","sendTestNotificationRequest","headers","useTestNotification"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AAQA,wBAAsB,WAAW,iBAWhC;AAED,wBAAgB,cAAc,+DAQ7B;AAED,wBAAsB,cAAc,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAA;CAAE,gBActH;AAED,wBAAgB,iBAAiB;QAhByB,MAAM;cAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;YA0BpH;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,gBAYlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,8DAO/C;AAGD,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,iBAsCvD;AAED,wBAAgB,qBAAqB,oFAUpC;AAED,wBAAsB,mBAAmB,CAAC,aAAa,EAAE;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;CAClD,gBAeA;AAED,wBAAgB,sBAAsB;gBArBvB,MAAM;UACZ,MAAM;cACF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;UAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;YA0BjD;AAID,MAAM,WAAW,WAAW;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACvB;AAGD,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAMvF;AAED,wBAAgB,cAAc;aAR6B,OAAO;UAAQ,WAAW;UAcpF;AAGD,wBAAsB,aAAa,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOlI;AAED,wBAAgB,gBAAgB;aATuD,OAAO;cAAY,MAAM;YAAU,MAAM;qCAa/H;AAID,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,gBAclD;AAED,wBAAgB,qBAAqB,mFAUpC;AACD,wBAAsB,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,gBAenF;AAED,wBAAgB,sBAAsB;UAjB0B,MAAM;QAAM,MAAM;YA2BjF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,gBAelE;AAED,wBAAgB,qBAAqB;UAjBsB,MAAM;YA6BhE;AAGD,wBAAsB,kBAAkB,iBAWvC;AASD,wBAAgB,qBAAqB,+DAYpC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AAQA,wBAAsB,WAAW,iBAWhC;AAED,wBAAgB,cAAc,+DAQ7B;AAED,wBAAsB,cAAc,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAA;CAAE,gBActH;AAED,wBAAgB,iBAAiB;QAhByB,MAAM;cAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;YAyBpH;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,gBAYlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,8DAO/C;AAGD,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,iBAsCvD;AAED,wBAAgB,qBAAqB,oFAUpC;AAED,wBAAsB,mBAAmB,CAAC,aAAa,EAAE;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;CAClD,gBAeA;AAED,wBAAgB,sBAAsB;gBArBvB,MAAM;UACZ,MAAM;cACF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;UAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;YA2BjD;AAID,MAAM,WAAW,WAAW;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACvB;AAGD,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAMvF;AAED,wBAAgB,cAAc;aAR6B,OAAO;UAAQ,WAAW;UAcpF;AAGD,wBAAsB,aAAa,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOlI;AAED,wBAAgB,gBAAgB;aATuD,OAAO;cAAY,MAAM;YAAU,MAAM;qCAa/H;AAID,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,gBAclD;AAED,wBAAgB,qBAAqB,mFAUpC;AACD,wBAAsB,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,gBAenF;AAED,wBAAgB,sBAAsB;UAjB0B,MAAM;QAAM,MAAM;YA2BjF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,gBAelE;AAED,wBAAgB,qBAAqB;UAjBsB,MAAM;YA6BhE;AAGD,wBAAsB,kBAAkB,iBAWvC;AASD,wBAAgB,qBAAqB,+DAYpC"}
@@ -1,4 +1,4 @@
1
- import { useQuery as u, useQueryClient as y, useMutation as r } from "@tanstack/react-query";
1
+ import { useQuery as u, useQueryClient as g, useMutation as r } from "@tanstack/react-query";
2
2
  import { API_URL as s } from "../utils/constants.js";
3
3
  import { useNavigate as m } from "react-router";
4
4
  import { experimental_createQueryPersister as S } from "../node_modules/.pnpm/@tanstack_query-persist-client-core@5.96.0/node_modules/@tanstack/query-persist-client-core/build/modern/createPersister.js";
@@ -32,7 +32,7 @@ async function T(e) {
32
32
  return n;
33
33
  }
34
34
  function V() {
35
- const e = y();
35
+ const e = g();
36
36
  return r({
37
37
  mutationFn: T,
38
38
  onSuccess: (t) => {
@@ -71,8 +71,8 @@ async function A(e) {
71
71
  const o = ((p = t.headers.get("content-disposition")) == null ? void 0 : p.split("filename=")[1]) || "app.log", n = (w = t.body) == null ? void 0 : w.getReader(), a = new ReadableStream({
72
72
  async start(c) {
73
73
  for (; ; ) {
74
- const { done: g, value: h } = await n.read();
75
- if (g) break;
74
+ const { done: y, value: h } = await n.read();
75
+ if (y) break;
76
76
  c.enqueue(h);
77
77
  }
78
78
  c.close(), n.releaseLock();
@@ -80,7 +80,7 @@ async function A(e) {
80
80
  }), l = await new Response(a).blob(), f = window.URL.createObjectURL(l), i = document.createElement("a");
81
81
  i.href = f, i.download = o, document.body.appendChild(i), i.click(), i.remove(), window.URL.revokeObjectURL(f);
82
82
  }
83
- function N() {
83
+ function K() {
84
84
  return r({
85
85
  mutationFn: A,
86
86
  onSuccess: (e) => {
@@ -103,11 +103,12 @@ async function E(e) {
103
103
  throw new Error(n.error);
104
104
  return n;
105
105
  }
106
- function J() {
106
+ function N() {
107
+ const e = g();
107
108
  return r({
108
109
  mutationFn: E,
109
- onSuccess: (e) => {
110
- console.log("# Settings Updated! :", e);
110
+ onSuccess: (t) => {
111
+ e.invalidateQueries({ queryKey: ["settings"] }), console.log("# Settings Updated! :", t);
111
112
  }
112
113
  });
113
114
  }
@@ -117,26 +118,26 @@ async function O() {
117
118
  throw new Error("Failed to get setup status");
118
119
  return e.json();
119
120
  }
120
- function K() {
121
+ function J() {
121
122
  return u({
122
123
  queryKey: ["setupStatus"],
123
124
  queryFn: O,
124
125
  retry: !1
125
126
  });
126
127
  }
127
- async function L(e) {
128
+ async function v(e) {
128
129
  return (await fetch(`${s}/setup/complete`, {
129
130
  method: "POST",
130
131
  headers: { "Content-Type": "application/json" },
131
132
  body: JSON.stringify(e)
132
133
  })).json();
133
134
  }
134
- function M() {
135
+ function Q() {
135
136
  return r({
136
- mutationFn: L
137
+ mutationFn: v
137
138
  });
138
139
  }
139
- async function v(e) {
140
+ async function L(e) {
140
141
  const t = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await fetch(`${s}/settings/${e}/2fa/setup`, {
141
142
  method: "POST",
142
143
  headers: t,
@@ -148,9 +149,9 @@ async function v(e) {
148
149
  }
149
150
  return await o.json();
150
151
  }
151
- function Q() {
152
+ function M() {
152
153
  return r({
153
- mutationFn: v,
154
+ mutationFn: L,
154
155
  onSuccess: (e) => {
155
156
  console.log("# 2FA setup data fetched successfully! :", e);
156
157
  },
@@ -219,7 +220,7 @@ async function k() {
219
220
  }
220
221
  return await e.json();
221
222
  }
222
- const d = 1e3 * 60 * 60 * 6, { persisterFn: R } = S({
223
+ const d = 1e3 * 60 * 60 * 6, { persisterFn: q } = S({
223
224
  storage: window.localStorage,
224
225
  maxAge: d
225
226
  });
@@ -227,7 +228,7 @@ function _() {
227
228
  return u({
228
229
  queryKey: ["latestVersion"],
229
230
  queryFn: () => k(),
230
- persister: R,
231
+ persister: q,
231
232
  retry: !1,
232
233
  staleTime: d,
233
234
  gcTime: d,
@@ -238,22 +239,22 @@ function _() {
238
239
  }
239
240
  export {
240
241
  k as checkLatestVersion,
241
- L as completeSetup,
242
+ v as completeSetup,
242
243
  A as downloadAppLogs,
243
244
  F as getAppLogs,
244
245
  j as getSettings,
245
246
  O as getSetupStatus,
246
- v as setupTwoFactorAuth,
247
+ L as setupTwoFactorAuth,
247
248
  T as updateSettings,
248
249
  _ as useCheckLatestVersion,
249
- M as useCompleteSetup,
250
+ Q as useCompleteSetup,
250
251
  H as useGetAppLogs,
251
- N as useGetDownloadAppLogs,
252
+ K as useGetDownloadAppLogs,
252
253
  G as useGetSettings,
253
- K as useSetupStatus,
254
- Q as useSetupTwoFactorAuth,
254
+ J as useSetupStatus,
255
+ M as useSetupTwoFactorAuth,
255
256
  V as useUpdateSettings,
256
- J as useValidateIntegration,
257
+ N as useValidateIntegration,
257
258
  x as useVerifyTwoFactorAuth,
258
259
  I as useVerifyTwoFactorOTP,
259
260
  E as validateIntegration,