@plutonhq/core-frontend 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/@types/backups.d.ts +26 -0
- package/dist-lib/@types/backups.d.ts.map +1 -1
- package/dist-lib/@types/devices.d.ts +7 -0
- package/dist-lib/@types/devices.d.ts.map +1 -1
- package/dist-lib/@types/plans.d.ts +21 -1
- package/dist-lib/@types/plans.d.ts.map +1 -1
- package/dist-lib/@types/restores.d.ts +2 -0
- package/dist-lib/@types/restores.d.ts.map +1 -1
- package/dist-lib/components/Device/DeviceBackups/DeviceBackups.d.ts +3 -2
- package/dist-lib/components/Device/DeviceBackups/DeviceBackups.d.ts.map +1 -1
- package/dist-lib/components/Device/DeviceBackups/DeviceBackups.js +73 -85
- package/dist-lib/components/Device/DeviceBackups/DeviceBackups.js.map +1 -1
- package/dist-lib/components/Plan/BackupEvents/BackupEvents.d.ts.map +1 -1
- package/dist-lib/components/Plan/BackupEvents/BackupEvents.js +88 -50
- package/dist-lib/components/Plan/BackupEvents/BackupEvents.js.map +1 -1
- package/dist-lib/components/Plan/BackupEvents/BackupEvents.module.scss.js +70 -38
- package/dist-lib/components/Plan/BackupEvents/BackupEvents.module.scss.js.map +1 -1
- package/dist-lib/components/Plan/BackupProgress/BackupProgress.d.ts.map +1 -1
- package/dist-lib/components/Plan/BackupProgress/BackupProgress.js +166 -123
- package/dist-lib/components/Plan/BackupProgress/BackupProgress.js.map +1 -1
- package/dist-lib/components/Plan/BackupProgress/BackupProgress.module.scss.js +64 -30
- package/dist-lib/components/Plan/BackupProgress/BackupProgress.module.scss.js.map +1 -1
- package/dist-lib/components/Plan/Backups/Backups.d.ts +8 -1
- package/dist-lib/components/Plan/Backups/Backups.d.ts.map +1 -1
- package/dist-lib/components/Plan/Backups/Backups.js +154 -125
- package/dist-lib/components/Plan/Backups/Backups.js.map +1 -1
- package/dist-lib/components/Plan/EditPlan/EditPlan.d.ts.map +1 -1
- package/dist-lib/components/Plan/EditPlan/EditPlan.js +11 -10
- package/dist-lib/components/Plan/EditPlan/EditPlan.js.map +1 -1
- package/dist-lib/components/Plan/Mirrors/MirrorDetails.d.ts +12 -0
- package/dist-lib/components/Plan/Mirrors/MirrorDetails.d.ts.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorDetails.js +68 -0
- package/dist-lib/components/Plan/Mirrors/MirrorDetails.js.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorDetails.module.scss.js +26 -0
- package/dist-lib/components/Plan/Mirrors/MirrorDetails.module.scss.js.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.d.ts +11 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.d.ts.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.js +38 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.js.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.module.scss.js +16 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.module.scss.js.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.d.ts +14 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.d.ts.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.js +54 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.js.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.module.scss.js +26 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.module.scss.js.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.d.ts +15 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.d.ts.map +1 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.js +34 -0
- package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.js.map +1 -0
- package/dist-lib/components/Plan/PlanBackups/PlanBackups.d.ts.map +1 -1
- package/dist-lib/components/Plan/PlanBackups/PlanBackups.js +20 -17
- package/dist-lib/components/Plan/PlanBackups/PlanBackups.js.map +1 -1
- package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts +2 -1
- package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts.map +1 -1
- package/dist-lib/components/Plan/PlanForm/PlanForm.js +121 -94
- package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
- package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts +16 -0
- package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts.map +1 -0
- package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js +115 -0
- package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js.map +1 -0
- package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js +26 -0
- package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js.map +1 -0
- package/dist-lib/components/Plan/PlanItems/PlanItem.d.ts.map +1 -1
- package/dist-lib/components/Plan/PlanItems/PlanItem.js +58 -59
- package/dist-lib/components/Plan/PlanItems/PlanItem.js.map +1 -1
- package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.d.ts +2 -2
- package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.d.ts.map +1 -1
- package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.js.map +1 -1
- package/dist-lib/components/Plan/PlanRemoveModal/PlanRemoveModal.js +8 -8
- package/dist-lib/components/Plan/PlanRemoveModal/PlanRemoveModal.js.map +1 -1
- package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.d.ts +14 -0
- package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.d.ts.map +1 -0
- package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.js +290 -0
- package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.js.map +1 -0
- package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.module.scss.js +26 -0
- package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.module.scss.js.map +1 -0
- package/dist-lib/components/Plan/PlanStats/PlanStats.d.ts.map +1 -1
- package/dist-lib/components/Plan/PlanStats/PlanStats.js +41 -42
- package/dist-lib/components/Plan/PlanStats/PlanStats.js.map +1 -1
- package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js +5 -5
- package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.d.ts +15 -0
- package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.d.ts.map +1 -0
- package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.js +69 -0
- package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.js.map +1 -0
- package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.module.scss.js +16 -0
- package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.module.scss.js.map +1 -0
- package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.d.ts.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.js +36 -34
- package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.js.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.d.ts.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.js +7 -5
- package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.js.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.d.ts +12 -4
- package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.d.ts.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.js +44 -32
- package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.js.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.d.ts +5 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.d.ts.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.js +48 -44
- package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.js.map +1 -1
- package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.module.scss.js +32 -32
- package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts +1 -1
- package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts.map +1 -1
- package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +52 -24
- package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
- package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.d.ts.map +1 -1
- package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.js +28 -19
- package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.js.map +1 -1
- package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.d.ts +7 -0
- package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.d.ts.map +1 -0
- package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.js +79 -0
- package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.js.map +1 -0
- package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.module.scss.js +24 -0
- package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.module.scss.js.map +1 -0
- package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
- package/dist-lib/components/common/Icon/Icon.js +11 -0
- package/dist-lib/components/common/Icon/Icon.js.map +1 -1
- package/dist-lib/components/common/PageHeader/PageHeader.module.scss.js +6 -6
- package/dist-lib/components/index.d.ts +6 -0
- package/dist-lib/components/index.d.ts.map +1 -1
- package/dist-lib/components.js +102 -90
- package/dist-lib/components.js.map +1 -1
- package/dist-lib/hooks/usePwaAutoUpdate.d.ts +11 -2
- package/dist-lib/hooks/usePwaAutoUpdate.d.ts.map +1 -1
- package/dist-lib/hooks/usePwaAutoUpdate.js +32 -10
- package/dist-lib/hooks/usePwaAutoUpdate.js.map +1 -1
- package/dist-lib/router.d.ts.map +1 -1
- package/dist-lib/router.js +46 -35
- package/dist-lib/router.js.map +1 -1
- package/dist-lib/routes/DeviceSingle/DeviceSingle.d.ts.map +1 -1
- package/dist-lib/routes/DeviceSingle/DeviceSingle.js +40 -40
- package/dist-lib/routes/DeviceSingle/DeviceSingle.js.map +1 -1
- package/dist-lib/routes/PlanSingle/PlanSingle.d.ts.map +1 -1
- package/dist-lib/routes/PlanSingle/PlanSingle.js +123 -98
- package/dist-lib/routes/PlanSingle/PlanSingle.js.map +1 -1
- package/dist-lib/services/backups.d.ts +15 -2
- package/dist-lib/services/backups.d.ts.map +1 -1
- package/dist-lib/services/backups.js +119 -100
- package/dist-lib/services/backups.js.map +1 -1
- package/dist-lib/services/plans.d.ts +20 -0
- package/dist-lib/services/plans.d.ts.map +1 -1
- package/dist-lib/services/plans.js +227 -172
- package/dist-lib/services/plans.js.map +1 -1
- package/dist-lib/services/restores.d.ts +10 -2
- package/dist-lib/services/restores.d.ts.map +1 -1
- package/dist-lib/services/restores.js +61 -57
- package/dist-lib/services/restores.js.map +1 -1
- package/dist-lib/services/settings.d.ts +16 -0
- package/dist-lib/services/settings.d.ts.map +1 -1
- package/dist-lib/services/settings.js +147 -68
- package/dist-lib/services/settings.js.map +1 -1
- package/dist-lib/services/users.d.ts.map +1 -1
- package/dist-lib/services/users.js +32 -32
- package/dist-lib/services/users.js.map +1 -1
- package/dist-lib/services.js +113 -101
- package/dist-lib/styles/core-frontend.css +1 -1
- package/dist-lib/utils/progressHelpers.d.ts +12 -1
- package/dist-lib/utils/progressHelpers.d.ts.map +1 -1
- package/dist-lib/utils/progressHelpers.js +121 -63
- package/dist-lib/utils/progressHelpers.js.map +1 -1
- package/dist-lib/utils.js +29 -28
- package/package.json +1 -1
- package/src/@types/backups.ts +28 -0
- package/src/@types/devices.ts +8 -0
- package/src/@types/plans.ts +23 -1
- package/src/@types/restores.ts +2 -0
- package/src/components/Device/DeviceBackups/DeviceBackups.tsx +11 -36
- package/src/components/Plan/BackupEvents/BackupEvents.module.scss +65 -0
- package/src/components/Plan/BackupEvents/BackupEvents.tsx +65 -4
- package/src/components/Plan/BackupProgress/BackupProgress.module.scss +121 -3
- package/src/components/Plan/BackupProgress/BackupProgress.tsx +149 -71
- package/src/components/Plan/Backups/Backups.tsx +52 -4
- package/src/components/Plan/EditPlan/EditPlan.tsx +1 -0
- package/src/components/Plan/Mirrors/MirrorDetails.module.scss +76 -0
- package/src/components/Plan/Mirrors/MirrorDetails.tsx +100 -0
- package/src/components/Plan/Mirrors/MirrorStatusBadge.module.scss +25 -0
- package/src/components/Plan/Mirrors/MirrorStatusBadge.tsx +65 -0
- package/src/components/Plan/Mirrors/MirrorStorageSelector.module.scss +97 -0
- package/src/components/Plan/Mirrors/MirrorStorageSelector.tsx +70 -0
- package/src/components/Plan/Mirrors/MirrorStorageSelectorModal.tsx +40 -0
- package/src/components/Plan/PlanBackups/PlanBackups.tsx +4 -1
- package/src/components/Plan/PlanForm/PlanForm.tsx +44 -17
- package/src/components/Plan/PlanIntegrity/PlanIntegrity.module.scss +110 -0
- package/src/components/Plan/PlanIntegrity/PlanIntegrity.tsx +187 -0
- package/src/components/Plan/PlanItems/PlanItem.tsx +3 -3
- package/src/components/Plan/PlanPendingBackup/PlanPendingBackup.tsx +2 -2
- package/src/components/Plan/PlanRemoveModal/PlanRemoveModal.tsx +1 -1
- package/src/components/Plan/PlanSettings/PlanReplicationSettings.module.scss +105 -0
- package/src/components/Plan/PlanSettings/PlanReplicationSettings.tsx +334 -0
- package/src/components/Plan/PlanStats/PlanStats.module.scss +1 -1
- package/src/components/Plan/PlanStats/PlanStats.tsx +8 -8
- package/src/components/Plan/PlanStorageInfo/PlanStorageInfo.module.scss +43 -0
- package/src/components/Plan/PlanStorageInfo/PlanStorageInfo.tsx +83 -0
- package/src/components/Restore/RestoreWizard/RestoreConfirmStep.tsx +2 -0
- package/src/components/Restore/RestoreWizard/RestorePreviewStep.tsx +2 -0
- package/src/components/Restore/RestoreWizard/RestoreSettingsStep.tsx +36 -13
- package/src/components/Restore/RestoreWizard/RestoreWizard.module.scss +4 -0
- package/src/components/Restore/RestoreWizard/RestoreWizard.tsx +9 -1
- package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +38 -2
- package/src/components/Settings/IntegrationSettings/IntegrationSettings.tsx +9 -2
- package/src/components/Settings/TwoFactorSetup/TwoFactorSetup.module.scss +62 -0
- package/src/components/Settings/TwoFactorSetup/TwoFactorSetup.tsx +102 -0
- package/src/components/common/Icon/Icon.tsx +10 -1
- package/src/components/common/PageHeader/PageHeader.module.scss +3 -0
- package/src/components/index.ts +8 -0
- package/src/hooks/usePwaAutoUpdate.ts +51 -11
- package/src/router.tsx +26 -17
- package/src/routes/DeviceSingle/DeviceSingle.tsx +3 -3
- package/src/routes/PlanSingle/PlanSingle.tsx +21 -0
- package/src/services/backups.ts +32 -9
- package/src/services/plans.ts +75 -0
- package/src/services/restores.ts +10 -2
- package/src/services/settings.ts +90 -0
- package/src/services/users.ts +14 -5
- package/src/utils/progressHelpers.ts +85 -1
|
@@ -1,52 +1,51 @@
|
|
|
1
|
-
import { useQueryClient as d, useMutation as
|
|
2
|
-
import { toast as
|
|
1
|
+
import { useQueryClient as d, useMutation as a, useQuery as p } from "@tanstack/react-query";
|
|
2
|
+
import { toast as $ } from "react-toastify";
|
|
3
3
|
import { API_URL as c } from "../utils/constants.js";
|
|
4
4
|
const h = /* @__PURE__ */ new Set();
|
|
5
|
-
async function
|
|
6
|
-
const
|
|
5
|
+
async function b({ backupId: e, replicationId: n }) {
|
|
6
|
+
const t = `${c}/backups/${e}/action/download?${n ? `replicationId=${n}` : ""}`, s = await (await fetch(t, {
|
|
7
7
|
method: "POST",
|
|
8
8
|
credentials: "include"
|
|
9
|
-
// headers: header,
|
|
10
9
|
})).json();
|
|
11
|
-
if (!
|
|
12
|
-
throw new Error(
|
|
13
|
-
return
|
|
10
|
+
if (!s.success)
|
|
11
|
+
throw new Error(s.error);
|
|
12
|
+
return s;
|
|
14
13
|
}
|
|
15
|
-
function
|
|
14
|
+
function C() {
|
|
16
15
|
const e = d();
|
|
17
|
-
return
|
|
18
|
-
mutationFn:
|
|
19
|
-
onSuccess: (
|
|
20
|
-
console.log("res :",
|
|
16
|
+
return a({
|
|
17
|
+
mutationFn: b,
|
|
18
|
+
onSuccess: (n, t) => {
|
|
19
|
+
console.log("res :", t, n), e.invalidateQueries({ queryKey: ["plan", t.planId] });
|
|
21
20
|
}
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
|
-
async function
|
|
23
|
+
async function g(e) {
|
|
25
24
|
var f, w;
|
|
26
|
-
const
|
|
25
|
+
const n = await fetch(`${c}/backups/${e}/action/download`, {
|
|
27
26
|
method: "GET",
|
|
28
27
|
credentials: "include"
|
|
29
28
|
// headers: header,
|
|
30
29
|
});
|
|
31
|
-
if (!
|
|
32
|
-
const l = await
|
|
30
|
+
if (!n.ok) {
|
|
31
|
+
const l = await n.json();
|
|
33
32
|
throw new Error(l.error);
|
|
34
33
|
}
|
|
35
|
-
const
|
|
34
|
+
const t = ((f = n.headers.get("content-disposition")) == null ? void 0 : f.split("filename=")[1]) || `backup-${e}.tar`, o = (w = n.body) == null ? void 0 : w.getReader(), s = new ReadableStream({
|
|
36
35
|
async start(l) {
|
|
37
36
|
for (; ; ) {
|
|
38
|
-
const { done:
|
|
39
|
-
if (
|
|
40
|
-
l.enqueue(
|
|
37
|
+
const { done: k, value: m } = await o.read();
|
|
38
|
+
if (k) break;
|
|
39
|
+
l.enqueue(m);
|
|
41
40
|
}
|
|
42
41
|
l.close(), o.releaseLock();
|
|
43
42
|
}
|
|
44
|
-
}),
|
|
45
|
-
|
|
43
|
+
}), u = await new Response(s).blob(), i = window.URL.createObjectURL(u), r = document.createElement("a");
|
|
44
|
+
r.href = i, r.download = t, document.body.appendChild(r), r.click(), r.remove(), window.URL.revokeObjectURL(i);
|
|
46
45
|
}
|
|
47
|
-
function
|
|
48
|
-
return
|
|
49
|
-
mutationFn:
|
|
46
|
+
function O() {
|
|
47
|
+
return a({
|
|
48
|
+
mutationFn: g,
|
|
50
49
|
onSuccess: (e) => {
|
|
51
50
|
console.log("# Backup Downloaded! :", e);
|
|
52
51
|
},
|
|
@@ -55,78 +54,78 @@ function C() {
|
|
|
55
54
|
}
|
|
56
55
|
});
|
|
57
56
|
}
|
|
58
|
-
async function
|
|
59
|
-
const
|
|
57
|
+
async function E({ backupId: e }) {
|
|
58
|
+
const t = await (await fetch(`${c}/backups/${e}/action/download`, {
|
|
60
59
|
method: "DELETE",
|
|
61
60
|
credentials: "include"
|
|
62
61
|
// headers: header,
|
|
63
62
|
})).json();
|
|
64
|
-
if (!
|
|
65
|
-
throw new Error(
|
|
66
|
-
return
|
|
63
|
+
if (!t.success)
|
|
64
|
+
throw new Error(t.error);
|
|
65
|
+
return t;
|
|
67
66
|
}
|
|
68
|
-
function
|
|
67
|
+
function P() {
|
|
69
68
|
const e = d();
|
|
70
|
-
return
|
|
71
|
-
mutationFn:
|
|
72
|
-
onSuccess: (
|
|
73
|
-
console.log("res :",
|
|
69
|
+
return a({
|
|
70
|
+
mutationFn: E,
|
|
71
|
+
onSuccess: (n, t) => {
|
|
72
|
+
console.log("res :", t, n), e.invalidateQueries({ queryKey: ["plan", t.planId] });
|
|
74
73
|
}
|
|
75
74
|
});
|
|
76
75
|
}
|
|
77
|
-
async function
|
|
78
|
-
const
|
|
76
|
+
async function B(e) {
|
|
77
|
+
const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), o = await (await fetch(`${c}/backups/${e}`, {
|
|
79
78
|
method: "DELETE",
|
|
80
79
|
credentials: "include",
|
|
81
|
-
headers:
|
|
80
|
+
headers: n
|
|
82
81
|
})).json();
|
|
83
82
|
if (!o.success)
|
|
84
83
|
throw new Error(o.error);
|
|
85
84
|
return o;
|
|
86
85
|
}
|
|
87
|
-
function
|
|
88
|
-
return
|
|
89
|
-
mutationFn:
|
|
86
|
+
function v() {
|
|
87
|
+
return a({
|
|
88
|
+
mutationFn: B,
|
|
90
89
|
onSuccess: (e) => {
|
|
91
90
|
console.log("# Backup Removed! :", e);
|
|
92
91
|
}
|
|
93
92
|
});
|
|
94
93
|
}
|
|
95
|
-
async function
|
|
96
|
-
const
|
|
97
|
-
return await (await fetch(
|
|
94
|
+
async function y({ id: e, sourceId: n, sourceType: t, planId: o }) {
|
|
95
|
+
const s = new URL(`${c}/backups/${e}/progress?sourceId=${n}&sourceType=${t}&planId=${o}`);
|
|
96
|
+
return await (await fetch(s.toString(), {
|
|
98
97
|
method: "GET",
|
|
99
98
|
credentials: "include"
|
|
100
99
|
})).json();
|
|
101
100
|
}
|
|
102
|
-
function
|
|
103
|
-
const
|
|
101
|
+
function L(e) {
|
|
102
|
+
const n = d();
|
|
104
103
|
return p({
|
|
105
104
|
queryKey: ["progress-backup", e.id],
|
|
106
|
-
queryFn: () =>
|
|
105
|
+
queryFn: () => y(e),
|
|
107
106
|
refetchOnMount: !0,
|
|
108
107
|
retry: !1,
|
|
109
|
-
refetchInterval(
|
|
110
|
-
var
|
|
111
|
-
const o = (
|
|
112
|
-
if ((
|
|
113
|
-
const
|
|
114
|
-
return h.has(e.id) || (h.add(e.id),
|
|
108
|
+
refetchInterval(t) {
|
|
109
|
+
var u, i;
|
|
110
|
+
const o = (u = t.state) == null ? void 0 : u.data;
|
|
111
|
+
if ((i = o == null ? void 0 : o.events) == null ? void 0 : i.some((r) => r.phase === "finished" && r.completed === !0)) {
|
|
112
|
+
const r = (o == null ? void 0 : o.planId) || e.planId;
|
|
113
|
+
return h.has(e.id) || (h.add(e.id), r && (console.log("Invalidate Plan and Reload It :", r), n.invalidateQueries({ queryKey: ["plan", r] })), $.success("Process Complete!")), !1;
|
|
115
114
|
}
|
|
116
115
|
return 1e3;
|
|
117
116
|
}
|
|
118
117
|
});
|
|
119
118
|
}
|
|
120
|
-
function
|
|
119
|
+
function D(e) {
|
|
121
120
|
return p({
|
|
122
121
|
queryKey: ["progress-backup", e.id],
|
|
123
|
-
queryFn: () =>
|
|
122
|
+
queryFn: () => y(e),
|
|
124
123
|
refetchOnMount: !0,
|
|
125
124
|
retry: !1
|
|
126
125
|
});
|
|
127
126
|
}
|
|
128
|
-
async function
|
|
129
|
-
const o = await (await fetch(`${c}/backups/${
|
|
127
|
+
async function j({ planId: e, backupId: n }) {
|
|
128
|
+
const o = await (await fetch(`${c}/backups/${n}/action/cancel?planId=${e}`, {
|
|
130
129
|
method: "POST",
|
|
131
130
|
credentials: "include"
|
|
132
131
|
// headers: header,
|
|
@@ -135,71 +134,91 @@ async function S({ planId: e, backupId: t }) {
|
|
|
135
134
|
throw new Error(o.error);
|
|
136
135
|
return o;
|
|
137
136
|
}
|
|
138
|
-
function
|
|
139
|
-
return
|
|
140
|
-
mutationFn:
|
|
141
|
-
onSuccess: (e,
|
|
142
|
-
console.log("res :",
|
|
137
|
+
function G() {
|
|
138
|
+
return a({
|
|
139
|
+
mutationFn: j,
|
|
140
|
+
onSuccess: (e, n) => {
|
|
141
|
+
console.log("res :", n, e);
|
|
143
142
|
}
|
|
144
143
|
});
|
|
145
144
|
}
|
|
146
|
-
async function
|
|
147
|
-
console.log("updatePayload :",
|
|
148
|
-
const
|
|
145
|
+
async function F({ backupId: e, updatePayload: n }) {
|
|
146
|
+
console.log("updatePayload :", n);
|
|
147
|
+
const t = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), s = await (await fetch(`${c}/backups/${e}`, {
|
|
149
148
|
method: "POST",
|
|
150
149
|
credentials: "include",
|
|
151
|
-
body: JSON.stringify(
|
|
152
|
-
headers:
|
|
150
|
+
body: JSON.stringify(n),
|
|
151
|
+
headers: t
|
|
153
152
|
})).json();
|
|
154
|
-
if (!
|
|
155
|
-
throw new Error(
|
|
156
|
-
return
|
|
157
|
-
}
|
|
158
|
-
function
|
|
159
|
-
return
|
|
160
|
-
mutationFn:
|
|
161
|
-
onSuccess: (e,
|
|
162
|
-
console.log("res :",
|
|
153
|
+
if (!s.success)
|
|
154
|
+
throw new Error(s.error);
|
|
155
|
+
return s;
|
|
156
|
+
}
|
|
157
|
+
function K() {
|
|
158
|
+
return a({
|
|
159
|
+
mutationFn: F,
|
|
160
|
+
onSuccess: (e, n) => {
|
|
161
|
+
console.log("res :", n, e);
|
|
163
162
|
}
|
|
164
163
|
});
|
|
165
164
|
}
|
|
166
|
-
async function
|
|
167
|
-
const
|
|
165
|
+
async function S({ backupId: e, replicationId: n }) {
|
|
166
|
+
const t = n ? `${c}/backups/${e}/files?replicationId=${n}` : `${c}/backups/${e}/files`, s = await (await fetch(t, {
|
|
168
167
|
method: "GET",
|
|
169
168
|
credentials: "include"
|
|
170
|
-
// headers: header,
|
|
171
169
|
})).json();
|
|
172
|
-
if (!
|
|
173
|
-
throw new Error(
|
|
174
|
-
return
|
|
170
|
+
if (!s.success)
|
|
171
|
+
throw new Error(s.error);
|
|
172
|
+
return s;
|
|
175
173
|
}
|
|
176
174
|
function U(e) {
|
|
177
175
|
return p({
|
|
178
176
|
queryKey: ["snapshot-files", e.backupId],
|
|
179
|
-
queryFn: () =>
|
|
177
|
+
queryFn: () => S(e),
|
|
180
178
|
refetchOnMount: !0,
|
|
181
179
|
staleTime: 1e3 * 60 * 60,
|
|
182
180
|
// Cache the data for 60 minutes
|
|
183
181
|
retry: !1
|
|
184
182
|
});
|
|
185
183
|
}
|
|
184
|
+
async function q({ backupId: e, replicationId: n }) {
|
|
185
|
+
const t = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), s = await (await fetch(`${c}/backups/${e}/action/replication-retry?replicationId=${n}`, {
|
|
186
|
+
method: "POST",
|
|
187
|
+
credentials: "include",
|
|
188
|
+
headers: t
|
|
189
|
+
})).json();
|
|
190
|
+
if (!s.success)
|
|
191
|
+
throw new Error(s.error);
|
|
192
|
+
return s;
|
|
193
|
+
}
|
|
194
|
+
function Q() {
|
|
195
|
+
const e = d();
|
|
196
|
+
return a({
|
|
197
|
+
mutationFn: q,
|
|
198
|
+
onSuccess: (n, t) => {
|
|
199
|
+
console.log("res :", t, n), e.invalidateQueries({ queryKey: ["plan", t.planId] });
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
186
203
|
export {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
P as
|
|
198
|
-
|
|
199
|
-
C as
|
|
200
|
-
|
|
201
|
-
L as
|
|
204
|
+
j as cancelBackup,
|
|
205
|
+
E as cancelBackupDownload,
|
|
206
|
+
B as deleteBackup,
|
|
207
|
+
b as generateBackupDownload,
|
|
208
|
+
g as getBackupDownload,
|
|
209
|
+
y as getBackupProgress,
|
|
210
|
+
S as getSnapshotFiles,
|
|
211
|
+
q as retryFailedReplications,
|
|
212
|
+
F as updateBackup,
|
|
213
|
+
G as useCancelBackup,
|
|
214
|
+
P as useCancelBackupDownload,
|
|
215
|
+
v as useDeleteBackup,
|
|
216
|
+
C as useDownloadBackup,
|
|
217
|
+
O as useGetBackupDownload,
|
|
218
|
+
L as useGetBackupProgress,
|
|
219
|
+
D as useGetBackupProgressOnce,
|
|
202
220
|
U as useGetSnapshotFiles,
|
|
203
|
-
|
|
221
|
+
Q as useRetryFailedReplications,
|
|
222
|
+
K as useUpdateBackup
|
|
204
223
|
};
|
|
205
224
|
//# sourceMappingURL=backups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backups.js","sources":["../../src/services/backups.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { toast } from 'react-toastify';\r\nimport { API_URL } from '../utils/constants';\r\n\r\nconst notifiedBackupProgress = new Set<string>();\r\n\r\n// Generate Download\r\nexport async function generateBackupDownload({ backupId }: { backupId: string; planId: string }) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${backupId}/action/download`, {\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 useDownloadBackup() {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation({\r\n mutationFn: generateBackupDownload,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n },\r\n });\r\n}\r\n\r\n// Get Download\r\nexport async function getBackupDownload(id: string) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${id}/action/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] || `backup-${id}.tar`;\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 useGetBackupDownload() {\r\n return useMutation({\r\n mutationFn: getBackupDownload,\r\n onSuccess: (res) => {\r\n console.log('# Backup Downloaded! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Download Failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Cancel Download\r\nexport async function cancelBackupDownload({ backupId }: { backupId: string; planId: string }) {\r\n const res = await fetch(`${API_URL}/backups/${backupId}/action/download`, {\r\n method: 'DELETE',\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\nexport function useCancelBackupDownload() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: cancelBackupDownload,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Backup\r\nexport async function deleteBackup(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${id}`, {\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 useDeleteBackup() {\r\n return useMutation({\r\n mutationFn: deleteBackup,\r\n onSuccess: (res) => {\r\n console.log('# Backup Removed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Get Backup Progress\r\nexport async function getBackupProgress({ id, sourceId, sourceType, planId }: { id: string; sourceId: string; sourceType: string; planId: string }) {\r\n const url = new URL(`${API_URL}/backups/${id}/progress?sourceId=${sourceId}&sourceType=${sourceType}&planId=${planId}`);\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 return data;\r\n}\r\n\r\nexport function useGetBackupProgress(payload: { id: string; sourceId: string; sourceType: string; planId: string }) {\r\n const queryClient = useQueryClient();\r\n return useQuery({\r\n queryKey: ['progress-backup', payload.id],\r\n queryFn: () => getBackupProgress(payload),\r\n refetchOnMount: true,\r\n retry: false,\r\n refetchInterval(query) {\r\n // Only refetch if the browser tab is active\r\n // if (document.hidden) return false;\r\n\r\n // console.log('query :', query.state?.data);\r\n const progressData = query.state?.data;\r\n\r\n // Check if backup is finished by looking for a \"finished\" phase event\r\n const isFinished = progressData?.events?.some((event: any) => event.phase === 'finished' && event.completed === true);\r\n\r\n if (isFinished) {\r\n const planId = progressData?.planId || payload.planId;\r\n if (!notifiedBackupProgress.has(payload.id)) {\r\n notifiedBackupProgress.add(payload.id);\r\n if (planId) {\r\n console.log('Invalidate Plan and Reload It :', planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n }\r\n toast.success('Process Complete!');\r\n }\r\n return false;\r\n }\r\n\r\n return 1000;\r\n },\r\n });\r\n}\r\n\r\nexport function useGetBackupProgressOnce(payload: { id: string; sourceId: string; sourceType: string; planId: string }) {\r\n return useQuery({\r\n queryKey: ['progress-backup', payload.id],\r\n queryFn: () => getBackupProgress(payload),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Cancel Backup\r\nexport async function cancelBackup({ planId, backupId }: { planId: string; backupId: string }) {\r\n const res = await fetch(`${API_URL}/backups/${backupId}/action/cancel?planId=${planId}`, {\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\nexport function useCancelBackup() {\r\n return useMutation({\r\n mutationFn: cancelBackup,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n },\r\n });\r\n}\r\n\r\n// Update Backup Title and Description\r\nexport async function updateBackup({ backupId, updatePayload }: { backupId: string; updatePayload: { title?: string; description?: string } }) {\r\n console.log('updatePayload :', updatePayload);\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${backupId}`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n body: JSON.stringify(updatePayload),\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\nexport function useUpdateBackup() {\r\n return useMutation({\r\n mutationFn: updateBackup,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n },\r\n });\r\n}\r\n\r\n// Get Snapshot Files\r\nexport async function getSnapshotFiles({ backupId }: { backupId: string }) {\r\n const res = await fetch(`${API_URL}/backups/${backupId}/files`, {\r\n method: 'GET',\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\nexport function useGetSnapshotFiles(payload: { backupId: string }) {\r\n return useQuery({\r\n queryKey: ['snapshot-files', payload.backupId],\r\n queryFn: () => getSnapshotFiles(payload),\r\n refetchOnMount: true,\r\n staleTime: 1000 * 60 * 60, // Cache the data for 60 minutes\r\n retry: false,\r\n });\r\n}\r\n"],"names":["notifiedBackupProgress","generateBackupDownload","backupId","data","API_URL","useDownloadBackup","queryClient","useQueryClient","useMutation","res","payload","getBackupDownload","id","filename","_a","reader","_b","stream","controller","done","value","blob","url","link","useGetBackupDownload","cancelBackupDownload","useCancelBackupDownload","deleteBackup","header","useDeleteBackup","getBackupProgress","sourceId","sourceType","planId","useGetBackupProgress","useQuery","query","progressData","event","toast","useGetBackupProgressOnce","cancelBackup","useCancelBackup","updateBackup","updatePayload","useUpdateBackup","getSnapshotFiles","useGetSnapshotFiles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backups.js","sources":["../../src/services/backups.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { toast } from 'react-toastify';\r\nimport { API_URL } from '../utils/constants';\r\n\r\nconst notifiedBackupProgress = new Set<string>();\r\n\r\n// Generate Download\r\nexport async function generateBackupDownload({ backupId, replicationId }: { backupId: string; planId: string; replicationId?: string }) {\r\n const url = `${API_URL}/backups/${backupId}/action/download?${replicationId ? `replicationId=${replicationId}` : ''}`;\r\n const res = await fetch(url, {\r\n method: 'POST',\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 useDownloadBackup() {\r\n const queryClient = useQueryClient();\r\n\r\n return useMutation({\r\n mutationFn: generateBackupDownload,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n },\r\n });\r\n}\r\n\r\n// Get Download\r\nexport async function getBackupDownload(id: string) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${id}/action/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] || `backup-${id}.tar`;\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 useGetBackupDownload() {\r\n return useMutation({\r\n mutationFn: getBackupDownload,\r\n onSuccess: (res) => {\r\n console.log('# Backup Downloaded! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Download Failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Cancel Download\r\nexport async function cancelBackupDownload({ backupId }: { backupId: string; planId: string }) {\r\n const res = await fetch(`${API_URL}/backups/${backupId}/action/download`, {\r\n method: 'DELETE',\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\nexport function useCancelBackupDownload() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: cancelBackupDownload,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Backup\r\nexport async function deleteBackup(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${id}`, {\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 useDeleteBackup() {\r\n return useMutation({\r\n mutationFn: deleteBackup,\r\n onSuccess: (res) => {\r\n console.log('# Backup Removed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Get Backup Progress\r\nexport async function getBackupProgress({ id, sourceId, sourceType, planId }: { id: string; sourceId: string; sourceType: string; planId: string }) {\r\n const url = new URL(`${API_URL}/backups/${id}/progress?sourceId=${sourceId}&sourceType=${sourceType}&planId=${planId}`);\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 return data;\r\n}\r\n\r\nexport function useGetBackupProgress(payload: { id: string; sourceId: string; sourceType: string; planId: string }) {\r\n const queryClient = useQueryClient();\r\n return useQuery({\r\n queryKey: ['progress-backup', payload.id],\r\n queryFn: () => getBackupProgress(payload),\r\n refetchOnMount: true,\r\n retry: false,\r\n refetchInterval(query) {\r\n // Only refetch if the browser tab is active\r\n // if (document.hidden) return false;\r\n\r\n // console.log('query :', query.state?.data);\r\n const progressData = query.state?.data;\r\n\r\n // Check if backup is finished by looking for a \"finished\" phase event\r\n const isFinished = progressData?.events?.some((event: any) => event.phase === 'finished' && event.completed === true);\r\n\r\n if (isFinished) {\r\n const planId = progressData?.planId || payload.planId;\r\n if (!notifiedBackupProgress.has(payload.id)) {\r\n notifiedBackupProgress.add(payload.id);\r\n if (planId) {\r\n console.log('Invalidate Plan and Reload It :', planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n }\r\n toast.success('Process Complete!');\r\n }\r\n return false;\r\n }\r\n\r\n return 1000;\r\n },\r\n });\r\n}\r\n\r\nexport function useGetBackupProgressOnce(payload: { id: string; sourceId: string; sourceType: string; planId: string }) {\r\n return useQuery({\r\n queryKey: ['progress-backup', payload.id],\r\n queryFn: () => getBackupProgress(payload),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Cancel Backup\r\nexport async function cancelBackup({ planId, backupId }: { planId: string; backupId: string }) {\r\n const res = await fetch(`${API_URL}/backups/${backupId}/action/cancel?planId=${planId}`, {\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\nexport function useCancelBackup() {\r\n return useMutation({\r\n mutationFn: cancelBackup,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n },\r\n });\r\n}\r\n\r\n// Update Backup Title and Description\r\nexport async function updateBackup({ backupId, updatePayload }: { backupId: string; updatePayload: { title?: string; description?: string } }) {\r\n console.log('updatePayload :', updatePayload);\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${backupId}`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n body: JSON.stringify(updatePayload),\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\nexport function useUpdateBackup() {\r\n return useMutation({\r\n mutationFn: updateBackup,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n },\r\n });\r\n}\r\n\r\n// Get Snapshot Files\r\nexport async function getSnapshotFiles({ backupId, replicationId }: { backupId: string; replicationId?: string }) {\r\n const url = replicationId ? `${API_URL}/backups/${backupId}/files?replicationId=${replicationId}` : `${API_URL}/backups/${backupId}/files`;\r\n const res = await fetch(url, {\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\nexport function useGetSnapshotFiles(payload: { backupId: string }) {\r\n return useQuery({\r\n queryKey: ['snapshot-files', payload.backupId],\r\n queryFn: () => getSnapshotFiles(payload),\r\n refetchOnMount: true,\r\n staleTime: 1000 * 60 * 60, // Cache the data for 60 minutes\r\n retry: false,\r\n });\r\n}\r\n\r\n// Retry Failed Replications\r\nexport async function retryFailedReplications({ backupId, replicationId }: { backupId: string; planId: string; replicationId: string }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/backups/${backupId}/action/replication-retry?replicationId=${replicationId}`, {\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 useRetryFailedReplications() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: retryFailedReplications,\r\n onSuccess: (res, payload) => {\r\n console.log('res :', payload, res);\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n },\r\n });\r\n}\r\n"],"names":["notifiedBackupProgress","generateBackupDownload","backupId","replicationId","url","API_URL","data","useDownloadBackup","queryClient","useQueryClient","useMutation","res","payload","getBackupDownload","id","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetBackupDownload","cancelBackupDownload","useCancelBackupDownload","deleteBackup","header","useDeleteBackup","getBackupProgress","sourceId","sourceType","planId","useGetBackupProgress","useQuery","query","progressData","event","toast","useGetBackupProgressOnce","cancelBackup","useCancelBackup","updateBackup","updatePayload","useUpdateBackup","getSnapshotFiles","useGetSnapshotFiles","retryFailedReplications","useRetryFailedReplications"],"mappings":"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"}
|
|
@@ -40,4 +40,24 @@ export declare function useCheckActiveBackupsOrRestore(): import("@tanstack/reac
|
|
|
40
40
|
planId: string;
|
|
41
41
|
type: "backup" | "restore";
|
|
42
42
|
}, unknown>;
|
|
43
|
+
export declare function deleteReplicationStorage({ planID, storageID, storagePath, removeData, replicationId, }: {
|
|
44
|
+
planID: string;
|
|
45
|
+
storageID: string;
|
|
46
|
+
storagePath: string;
|
|
47
|
+
removeData: boolean;
|
|
48
|
+
replicationId?: string;
|
|
49
|
+
}): Promise<any>;
|
|
50
|
+
export declare function useDeleteReplicationStorage(): import("@tanstack/react-query").UseMutationResult<any, Error, {
|
|
51
|
+
planID: string;
|
|
52
|
+
storageID: string;
|
|
53
|
+
storagePath: string;
|
|
54
|
+
removeData: boolean;
|
|
55
|
+
replicationId?: string;
|
|
56
|
+
}, unknown>;
|
|
57
|
+
export declare function checkPlanIntegrity({ planId }: {
|
|
58
|
+
planId: string;
|
|
59
|
+
}): Promise<any>;
|
|
60
|
+
export declare function useCheckPlanIntegrity(): import("@tanstack/react-query").UseMutationResult<any, Error, {
|
|
61
|
+
planId: string;
|
|
62
|
+
}, unknown>;
|
|
43
63
|
//# sourceMappingURL=plans.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGxD,wBAAsB,WAAW,iBAYhC;AAED,wBAAgB,WAAW,+DAO1B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAiB7C;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,8DAQpC;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,gBAc/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,8DAO5C;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iBAsChD;AAED,wBAAgB,kBAAkB,oFAUjC;AAGD,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,gBAcxD;AAED,wBAAgB,aAAa,4FAU5B;AAGD,wBAAsB,UAAU,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,gBAelF;AAED,wBAAgB,aAAa;QAjByB,MAAM;UAAQ,OAAO,CAAC,IAAI,CAAC;YAgChF;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,gBAYnG;AAED,wBAAgB,aAAa;QAdoC,MAAM;sBAAoB,OAAO;YAuBjG;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAU/B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAU3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAU5B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAc3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAc5B;AAGD,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB,gBAatG;AAED,wBAAgB,8BAA8B;YAGC,MAAM;UAAQ,QAAQ,GAAG,SAAS;YAGhF"}
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGxD,wBAAsB,WAAW,iBAYhC;AAED,wBAAgB,WAAW,+DAO1B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAiB7C;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,8DAQpC;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,gBAc/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,8DAO5C;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iBAsChD;AAED,wBAAgB,kBAAkB,oFAUjC;AAGD,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,gBAcxD;AAED,wBAAgB,aAAa,4FAU5B;AAGD,wBAAsB,UAAU,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,gBAelF;AAED,wBAAgB,aAAa;QAjByB,MAAM;UAAQ,OAAO,CAAC,IAAI,CAAC;YAgChF;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,gBAYnG;AAED,wBAAgB,aAAa;QAdoC,MAAM;sBAAoB,OAAO;YAuBjG;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAU/B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAU3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAU5B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAc3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAc5B;AAGD,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB,gBAatG;AAED,wBAAgB,8BAA8B;YAGC,MAAM;UAAQ,QAAQ,GAAG,SAAS;YAGhF;AAGD,wBAAsB,wBAAwB,CAAC,EAC5C,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,GACf,EAAE;IACA,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACzB,gBAaA;AAED,wBAAgB,2BAA2B;YApBhC,MAAM;eACH,MAAM;iBACJ,MAAM;gBACP,OAAO;oBACH,MAAM;YA+BxB;AAED,wBAAsB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,gBAatE;AAED,wBAAgB,qBAAqB;YAf0B,MAAM;YA4BpE"}
|