@plutonhq/core-frontend 0.1.13 → 0.1.14

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 (186) hide show
  1. package/dist-lib/@types/backups.d.ts +26 -0
  2. package/dist-lib/@types/backups.d.ts.map +1 -1
  3. package/dist-lib/@types/devices.d.ts +7 -0
  4. package/dist-lib/@types/devices.d.ts.map +1 -1
  5. package/dist-lib/@types/plans.d.ts +21 -1
  6. package/dist-lib/@types/plans.d.ts.map +1 -1
  7. package/dist-lib/@types/restores.d.ts +2 -0
  8. package/dist-lib/@types/restores.d.ts.map +1 -1
  9. package/dist-lib/components/Device/DeviceBackups/DeviceBackups.d.ts +3 -2
  10. package/dist-lib/components/Device/DeviceBackups/DeviceBackups.d.ts.map +1 -1
  11. package/dist-lib/components/Device/DeviceBackups/DeviceBackups.js +73 -85
  12. package/dist-lib/components/Device/DeviceBackups/DeviceBackups.js.map +1 -1
  13. package/dist-lib/components/Plan/BackupEvents/BackupEvents.d.ts.map +1 -1
  14. package/dist-lib/components/Plan/BackupEvents/BackupEvents.js +88 -50
  15. package/dist-lib/components/Plan/BackupEvents/BackupEvents.js.map +1 -1
  16. package/dist-lib/components/Plan/BackupEvents/BackupEvents.module.scss.js +70 -38
  17. package/dist-lib/components/Plan/BackupEvents/BackupEvents.module.scss.js.map +1 -1
  18. package/dist-lib/components/Plan/BackupProgress/BackupProgress.d.ts.map +1 -1
  19. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js +166 -123
  20. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js.map +1 -1
  21. package/dist-lib/components/Plan/BackupProgress/BackupProgress.module.scss.js +64 -30
  22. package/dist-lib/components/Plan/BackupProgress/BackupProgress.module.scss.js.map +1 -1
  23. package/dist-lib/components/Plan/Backups/Backups.d.ts +8 -1
  24. package/dist-lib/components/Plan/Backups/Backups.d.ts.map +1 -1
  25. package/dist-lib/components/Plan/Backups/Backups.js +154 -125
  26. package/dist-lib/components/Plan/Backups/Backups.js.map +1 -1
  27. package/dist-lib/components/Plan/EditPlan/EditPlan.d.ts.map +1 -1
  28. package/dist-lib/components/Plan/EditPlan/EditPlan.js +11 -10
  29. package/dist-lib/components/Plan/EditPlan/EditPlan.js.map +1 -1
  30. package/dist-lib/components/Plan/Mirrors/MirrorDetails.d.ts +12 -0
  31. package/dist-lib/components/Plan/Mirrors/MirrorDetails.d.ts.map +1 -0
  32. package/dist-lib/components/Plan/Mirrors/MirrorDetails.js +68 -0
  33. package/dist-lib/components/Plan/Mirrors/MirrorDetails.js.map +1 -0
  34. package/dist-lib/components/Plan/Mirrors/MirrorDetails.module.scss.js +26 -0
  35. package/dist-lib/components/Plan/Mirrors/MirrorDetails.module.scss.js.map +1 -0
  36. package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.d.ts +11 -0
  37. package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.d.ts.map +1 -0
  38. package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.js +38 -0
  39. package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.js.map +1 -0
  40. package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.module.scss.js +16 -0
  41. package/dist-lib/components/Plan/Mirrors/MirrorStatusBadge.module.scss.js.map +1 -0
  42. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.d.ts +14 -0
  43. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.d.ts.map +1 -0
  44. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.js +54 -0
  45. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.js.map +1 -0
  46. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.module.scss.js +26 -0
  47. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelector.module.scss.js.map +1 -0
  48. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.d.ts +15 -0
  49. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.d.ts.map +1 -0
  50. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.js +34 -0
  51. package/dist-lib/components/Plan/Mirrors/MirrorStorageSelectorModal.js.map +1 -0
  52. package/dist-lib/components/Plan/PlanBackups/PlanBackups.d.ts.map +1 -1
  53. package/dist-lib/components/Plan/PlanBackups/PlanBackups.js +20 -17
  54. package/dist-lib/components/Plan/PlanBackups/PlanBackups.js.map +1 -1
  55. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts +2 -1
  56. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts.map +1 -1
  57. package/dist-lib/components/Plan/PlanForm/PlanForm.js +85 -58
  58. package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
  59. package/dist-lib/components/Plan/PlanItems/PlanItem.d.ts.map +1 -1
  60. package/dist-lib/components/Plan/PlanItems/PlanItem.js +58 -59
  61. package/dist-lib/components/Plan/PlanItems/PlanItem.js.map +1 -1
  62. package/dist-lib/components/Plan/PlanRemoveModal/PlanRemoveModal.js +8 -8
  63. package/dist-lib/components/Plan/PlanRemoveModal/PlanRemoveModal.js.map +1 -1
  64. package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.d.ts +14 -0
  65. package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.d.ts.map +1 -0
  66. package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.js +290 -0
  67. package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.js.map +1 -0
  68. package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.module.scss.js +26 -0
  69. package/dist-lib/components/Plan/PlanSettings/PlanReplicationSettings.module.scss.js.map +1 -0
  70. package/dist-lib/components/Plan/PlanStats/PlanStats.d.ts.map +1 -1
  71. package/dist-lib/components/Plan/PlanStats/PlanStats.js +41 -42
  72. package/dist-lib/components/Plan/PlanStats/PlanStats.js.map +1 -1
  73. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js +5 -5
  74. package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.d.ts +15 -0
  75. package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.d.ts.map +1 -0
  76. package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.js +69 -0
  77. package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.js.map +1 -0
  78. package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.module.scss.js +16 -0
  79. package/dist-lib/components/Plan/PlanStorageInfo/PlanStorageInfo.module.scss.js.map +1 -0
  80. package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.d.ts.map +1 -1
  81. package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.js +36 -34
  82. package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.js.map +1 -1
  83. package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.d.ts.map +1 -1
  84. package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.js +7 -5
  85. package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.js.map +1 -1
  86. package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.d.ts +12 -4
  87. package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.d.ts.map +1 -1
  88. package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.js +44 -32
  89. package/dist-lib/components/Restore/RestoreWizard/RestoreSettingsStep.js.map +1 -1
  90. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.d.ts +5 -1
  91. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.d.ts.map +1 -1
  92. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.js +48 -44
  93. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.js.map +1 -1
  94. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.module.scss.js +32 -32
  95. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +14 -14
  96. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
  97. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.d.ts.map +1 -1
  98. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.js +28 -19
  99. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.js.map +1 -1
  100. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  101. package/dist-lib/components/common/Icon/Icon.js +11 -0
  102. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  103. package/dist-lib/components/common/PageHeader/PageHeader.module.scss.js +6 -6
  104. package/dist-lib/components/index.d.ts +4 -0
  105. package/dist-lib/components/index.d.ts.map +1 -1
  106. package/dist-lib/components.js +86 -78
  107. package/dist-lib/components.js.map +1 -1
  108. package/dist-lib/hooks/usePwaAutoUpdate.d.ts +11 -2
  109. package/dist-lib/hooks/usePwaAutoUpdate.d.ts.map +1 -1
  110. package/dist-lib/hooks/usePwaAutoUpdate.js +32 -10
  111. package/dist-lib/hooks/usePwaAutoUpdate.js.map +1 -1
  112. package/dist-lib/router.d.ts.map +1 -1
  113. package/dist-lib/router.js +46 -35
  114. package/dist-lib/router.js.map +1 -1
  115. package/dist-lib/routes/DeviceSingle/DeviceSingle.d.ts.map +1 -1
  116. package/dist-lib/routes/DeviceSingle/DeviceSingle.js +40 -40
  117. package/dist-lib/routes/DeviceSingle/DeviceSingle.js.map +1 -1
  118. package/dist-lib/services/backups.d.ts +15 -2
  119. package/dist-lib/services/backups.d.ts.map +1 -1
  120. package/dist-lib/services/backups.js +119 -100
  121. package/dist-lib/services/backups.js.map +1 -1
  122. package/dist-lib/services/plans.d.ts +14 -0
  123. package/dist-lib/services/plans.d.ts.map +1 -1
  124. package/dist-lib/services/plans.js +160 -129
  125. package/dist-lib/services/plans.js.map +1 -1
  126. package/dist-lib/services/restores.d.ts +10 -2
  127. package/dist-lib/services/restores.d.ts.map +1 -1
  128. package/dist-lib/services/restores.js +61 -57
  129. package/dist-lib/services/restores.js.map +1 -1
  130. package/dist-lib/services/users.d.ts.map +1 -1
  131. package/dist-lib/services/users.js +32 -32
  132. package/dist-lib/services/users.js.map +1 -1
  133. package/dist-lib/services.js +107 -103
  134. package/dist-lib/styles/core-frontend.css +1 -1
  135. package/dist-lib/utils/progressHelpers.d.ts +12 -1
  136. package/dist-lib/utils/progressHelpers.d.ts.map +1 -1
  137. package/dist-lib/utils/progressHelpers.js +121 -63
  138. package/dist-lib/utils/progressHelpers.js.map +1 -1
  139. package/dist-lib/utils.js +29 -28
  140. package/package.json +1 -1
  141. package/src/@types/backups.ts +28 -0
  142. package/src/@types/devices.ts +8 -0
  143. package/src/@types/plans.ts +23 -1
  144. package/src/@types/restores.ts +2 -0
  145. package/src/components/Device/DeviceBackups/DeviceBackups.tsx +11 -36
  146. package/src/components/Plan/BackupEvents/BackupEvents.module.scss +65 -0
  147. package/src/components/Plan/BackupEvents/BackupEvents.tsx +65 -4
  148. package/src/components/Plan/BackupProgress/BackupProgress.module.scss +121 -3
  149. package/src/components/Plan/BackupProgress/BackupProgress.tsx +149 -71
  150. package/src/components/Plan/Backups/Backups.tsx +52 -4
  151. package/src/components/Plan/EditPlan/EditPlan.tsx +1 -0
  152. package/src/components/Plan/Mirrors/MirrorDetails.module.scss +76 -0
  153. package/src/components/Plan/Mirrors/MirrorDetails.tsx +100 -0
  154. package/src/components/Plan/Mirrors/MirrorStatusBadge.module.scss +25 -0
  155. package/src/components/Plan/Mirrors/MirrorStatusBadge.tsx +65 -0
  156. package/src/components/Plan/Mirrors/MirrorStorageSelector.module.scss +97 -0
  157. package/src/components/Plan/Mirrors/MirrorStorageSelector.tsx +70 -0
  158. package/src/components/Plan/Mirrors/MirrorStorageSelectorModal.tsx +40 -0
  159. package/src/components/Plan/PlanBackups/PlanBackups.tsx +4 -1
  160. package/src/components/Plan/PlanForm/PlanForm.tsx +30 -3
  161. package/src/components/Plan/PlanItems/PlanItem.tsx +3 -3
  162. package/src/components/Plan/PlanRemoveModal/PlanRemoveModal.tsx +1 -1
  163. package/src/components/Plan/PlanSettings/PlanReplicationSettings.module.scss +105 -0
  164. package/src/components/Plan/PlanSettings/PlanReplicationSettings.tsx +334 -0
  165. package/src/components/Plan/PlanStats/PlanStats.module.scss +1 -1
  166. package/src/components/Plan/PlanStats/PlanStats.tsx +8 -8
  167. package/src/components/Plan/PlanStorageInfo/PlanStorageInfo.module.scss +43 -0
  168. package/src/components/Plan/PlanStorageInfo/PlanStorageInfo.tsx +83 -0
  169. package/src/components/Restore/RestoreWizard/RestoreConfirmStep.tsx +2 -0
  170. package/src/components/Restore/RestoreWizard/RestorePreviewStep.tsx +2 -0
  171. package/src/components/Restore/RestoreWizard/RestoreSettingsStep.tsx +36 -13
  172. package/src/components/Restore/RestoreWizard/RestoreWizard.module.scss +4 -0
  173. package/src/components/Restore/RestoreWizard/RestoreWizard.tsx +9 -1
  174. package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +1 -1
  175. package/src/components/Settings/IntegrationSettings/IntegrationSettings.tsx +9 -2
  176. package/src/components/common/Icon/Icon.tsx +10 -1
  177. package/src/components/common/PageHeader/PageHeader.module.scss +3 -0
  178. package/src/components/index.ts +6 -0
  179. package/src/hooks/usePwaAutoUpdate.ts +51 -11
  180. package/src/router.tsx +26 -17
  181. package/src/routes/DeviceSingle/DeviceSingle.tsx +3 -3
  182. package/src/services/backups.ts +32 -9
  183. package/src/services/plans.ts +45 -0
  184. package/src/services/restores.ts +10 -2
  185. package/src/services/users.ts +14 -5
  186. package/src/utils/progressHelpers.ts +85 -1
@@ -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"}
@@ -1,8 +1,8 @@
1
- import { useQuery as d, useMutation as r, useQueryClient as c } from "@tanstack/react-query";
2
- import { toast as l } from "react-toastify";
1
+ import { useQuery as w, useMutation as r, useQueryClient as i } from "@tanstack/react-query";
2
+ import { toast as u } from "react-toastify";
3
3
  import { API_URL as a } from "../utils/constants.js";
4
4
  async function g() {
5
- const e = new URL(`${a}/plans`), o = await (await fetch(e.toString(), {
5
+ const n = new URL(`${a}/plans`), o = await (await fetch(n.toString(), {
6
6
  method: "GET",
7
7
  credentials: "include"
8
8
  })).json();
@@ -10,18 +10,18 @@ async function g() {
10
10
  throw new Error(o.error);
11
11
  return o;
12
12
  }
13
- function F() {
14
- return d({
13
+ function b() {
14
+ return w({
15
15
  queryKey: ["plans"],
16
16
  queryFn: () => g(),
17
17
  refetchOnMount: !0,
18
18
  retry: !1
19
19
  });
20
20
  }
21
- async function P(e) {
22
- if (!e)
21
+ async function P(n) {
22
+ if (!n)
23
23
  throw new Error("ID Not Provided.");
24
- const n = new URL(`${a}/plans/${e}`), o = await fetch(n.toString(), {
24
+ const e = new URL(`${a}/plans/${n}`), o = await fetch(e.toString(), {
25
25
  method: "GET",
26
26
  credentials: "include"
27
27
  }), t = await o.json();
@@ -31,17 +31,17 @@ async function P(e) {
31
31
  }
32
32
  return t;
33
33
  }
34
- function Q(e) {
35
- return d({
36
- queryKey: ["plan", e],
37
- queryFn: () => P(e),
34
+ function A(n) {
35
+ return w({
36
+ queryKey: ["plan", n],
37
+ queryFn: () => P(n),
38
38
  refetchOnMount: !0,
39
39
  retry: !1,
40
40
  staleTime: 0
41
41
  });
42
42
  }
43
- async function j(e) {
44
- const n = new URL(`${a}/plans/${e}/logs`), o = await fetch(n.toString(), {
43
+ async function j(n) {
44
+ const e = new URL(`${a}/plans/${n}/logs`), o = await fetch(e.toString(), {
45
45
  method: "GET",
46
46
  credentials: "include"
47
47
  }), t = await o.json();
@@ -51,97 +51,97 @@ async function j(e) {
51
51
  }
52
52
  return t;
53
53
  }
54
- function U(e) {
55
- return d({
56
- queryKey: ["planLogs", e],
57
- queryFn: () => j(e),
54
+ function U(n) {
55
+ return w({
56
+ queryKey: ["planLogs", n],
57
+ queryFn: () => j(n),
58
58
  refetchOnMount: !0,
59
59
  retry: !1
60
60
  });
61
61
  }
62
- async function E(e) {
63
- var w, y;
64
- const n = await fetch(`${a}/plans/${e}/logs/download`, {
62
+ async function S(n) {
63
+ var y, f;
64
+ const e = await fetch(`${a}/plans/${n}/logs/download`, {
65
65
  method: "GET",
66
66
  credentials: "include"
67
67
  // headers: header,
68
68
  });
69
- if (!n.ok) {
70
- const u = await n.json();
71
- throw new Error(u.error);
69
+ if (!e.ok) {
70
+ const l = await e.json();
71
+ throw new Error(l.error);
72
72
  }
73
- const o = ((w = n.headers.get("content-disposition")) == null ? void 0 : w.split("filename=")[1]) || `plan-${e}.log`, t = (y = n.body) == null ? void 0 : y.getReader(), s = new ReadableStream({
74
- async start(u) {
73
+ const o = ((y = e.headers.get("content-disposition")) == null ? void 0 : y.split("filename=")[1]) || `plan-${n}.log`, t = (f = e.body) == null ? void 0 : f.getReader(), s = new ReadableStream({
74
+ async start(l) {
75
75
  for (; ; ) {
76
76
  const { done: h, value: m } = await t.read();
77
77
  if (h) break;
78
- u.enqueue(m);
78
+ l.enqueue(m);
79
79
  }
80
- u.close(), t.releaseLock();
80
+ l.close(), t.releaseLock();
81
81
  }
82
- }), f = await new Response(s).blob(), p = window.URL.createObjectURL(f), i = document.createElement("a");
83
- i.href = p, i.download = o, document.body.appendChild(i), i.click(), i.remove(), window.URL.revokeObjectURL(p);
82
+ }), d = await new Response(s).blob(), p = window.URL.createObjectURL(d), c = document.createElement("a");
83
+ c.href = p, c.download = o, document.body.appendChild(c), c.click(), c.remove(), window.URL.revokeObjectURL(p);
84
84
  }
85
- function A() {
85
+ function B() {
86
86
  return r({
87
- mutationFn: E,
88
- onSuccess: (e) => {
89
- console.log("# Logs Downloaded! :", e);
87
+ mutationFn: S,
88
+ onSuccess: (n) => {
89
+ console.log("# Logs Downloaded! :", n);
90
90
  },
91
- onError: (e) => {
92
- console.log("# Logs Download Failed! :", e);
91
+ onError: (n) => {
92
+ console.log("# Logs Download Failed! :", n);
93
93
  }
94
94
  });
95
95
  }
96
- async function k(e) {
97
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
98
- console.log("newPlan :", e);
96
+ async function E(n) {
97
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
98
+ console.log("newPlan :", n);
99
99
  const t = await (await fetch(`${a}/plans`, {
100
100
  method: "POST",
101
101
  credentials: "include",
102
- headers: n,
103
- body: JSON.stringify(e)
102
+ headers: e,
103
+ body: JSON.stringify(n)
104
104
  })).json();
105
105
  if (!t.success)
106
106
  throw new Error(t.error || t.result);
107
107
  return t;
108
108
  }
109
- function B() {
110
- const e = c();
109
+ function D() {
110
+ const n = i();
111
111
  return r({
112
- mutationFn: k,
113
- onSuccess: (n) => {
114
- console.log("# Plan Created! :", n), e.invalidateQueries({ queryKey: ["plans"] });
112
+ mutationFn: E,
113
+ onSuccess: (e) => {
114
+ console.log("# Plan Created! :", e), n.invalidateQueries({ queryKey: ["plans"] });
115
115
  }
116
116
  });
117
117
  }
118
- async function q(e) {
119
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
120
- console.log("newPlan :", e);
121
- const t = await (await fetch(`${a}/plans/${e.id}`, {
118
+ async function q(n) {
119
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" });
120
+ console.log("newPlan :", n);
121
+ const t = await (await fetch(`${a}/plans/${n.id}`, {
122
122
  method: "PUT",
123
123
  credentials: "include",
124
- headers: n,
125
- body: JSON.stringify({ plan: e.data })
124
+ headers: e,
125
+ body: JSON.stringify({ plan: n.data })
126
126
  })).json();
127
127
  if (console.log("data :", t), !t.success)
128
128
  throw new Error(t.error);
129
129
  return t;
130
130
  }
131
131
  function G() {
132
- const e = c();
132
+ const n = i();
133
133
  return r({
134
134
  mutationFn: q,
135
- onSuccess: (n) => {
135
+ onSuccess: (e) => {
136
136
  var t;
137
- console.log("# Plan Updated! :", n);
138
- const o = (t = n == null ? void 0 : n.result) == null ? void 0 : t.id;
139
- o && e.invalidateQueries({ queryKey: ["plan", o] }), e.invalidateQueries({ queryKey: ["plans"] });
137
+ console.log("# Plan Updated! :", e);
138
+ const o = (t = e == null ? void 0 : e.result) == null ? void 0 : t.id;
139
+ o && n.invalidateQueries({ queryKey: ["plan", o] }), n.invalidateQueries({ queryKey: ["plans"] });
140
140
  }
141
141
  });
142
142
  }
143
- async function S({ id: e, removeRemoteData: n }) {
144
- const o = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), s = await (await fetch(`${a}/plans/${e}?removeData=${n}`, {
143
+ async function v({ id: n, removeRemoteData: e }) {
144
+ const o = 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",
147
147
  headers: o
@@ -150,119 +150,119 @@ async function S({ id: e, removeRemoteData: n }) {
150
150
  throw new Error(s.error);
151
151
  return s;
152
152
  }
153
- function D() {
154
- const e = c();
153
+ function H() {
154
+ const n = i();
155
155
  return r({
156
- mutationFn: S,
157
- onSuccess: (n) => {
158
- console.log("# Plan Removed! :", n), e.invalidateQueries({ queryKey: ["plans"] });
156
+ mutationFn: v,
157
+ onSuccess: (e) => {
158
+ console.log("# Plan Removed! :", e), n.invalidateQueries({ queryKey: ["plans"] });
159
159
  }
160
160
  });
161
161
  }
162
- async function $(e) {
163
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${e}/action/backup`, {
162
+ async function $(n) {
163
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${n}/action/backup`, {
164
164
  method: "POST",
165
165
  credentials: "include",
166
- headers: n
166
+ headers: e
167
167
  })).json();
168
168
  if (!t.success)
169
169
  throw new Error(t.error);
170
170
  return t;
171
171
  }
172
- function H() {
173
- const e = c();
172
+ function M() {
173
+ const n = i();
174
174
  return r({
175
175
  mutationFn: $,
176
- onSuccess: (n, o) => {
177
- console.log("# Backup Started! :", n, o), e.invalidateQueries({ queryKey: ["plan", o] }), e.invalidateQueries({ queryKey: ["plans"] });
176
+ onSuccess: (e, o) => {
177
+ console.log("# Backup Started! :", e, o), n.invalidateQueries({ queryKey: ["plan", o] }), n.invalidateQueries({ queryKey: ["plans"] });
178
178
  }
179
179
  });
180
180
  }
181
- async function v(e) {
182
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${e}/action/pause`, {
181
+ async function k(n) {
182
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${n}/action/pause`, {
183
183
  method: "POST",
184
184
  credentials: "include",
185
- headers: n
185
+ headers: e
186
186
  })).json();
187
187
  if (!t.success)
188
188
  throw new Error(t.error);
189
189
  return t;
190
190
  }
191
- function M() {
192
- const e = c();
191
+ function N() {
192
+ const n = i();
193
193
  return r({
194
- mutationFn: v,
195
- onSuccess: (n, o) => {
196
- console.log("# Backup Paused! :", n, o), e.invalidateQueries({ queryKey: ["plan", o] }), e.invalidateQueries({ queryKey: ["plans"] });
194
+ mutationFn: k,
195
+ onSuccess: (e, o) => {
196
+ console.log("# Backup Paused! :", e, o), n.invalidateQueries({ queryKey: ["plan", o] }), n.invalidateQueries({ queryKey: ["plans"] });
197
197
  }
198
198
  });
199
199
  }
200
- async function C(e) {
201
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${e}/action/resume`, {
200
+ async function C(n) {
201
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${n}/action/resume`, {
202
202
  method: "POST",
203
203
  credentials: "include",
204
- headers: n
204
+ headers: e
205
205
  })).json();
206
206
  if (!t.success)
207
207
  throw new Error(t.error);
208
208
  return t;
209
209
  }
210
- function N() {
211
- const e = c();
210
+ function J() {
211
+ const n = i();
212
212
  return r({
213
213
  mutationFn: C,
214
- onSuccess: (n, o) => {
215
- console.log("# Backup Resumed! :", n, o), e.invalidateQueries({ queryKey: ["plan", o] }), e.invalidateQueries({ queryKey: ["plans"] });
214
+ onSuccess: (e, o) => {
215
+ console.log("# Backup Resumed! :", e, o), n.invalidateQueries({ queryKey: ["plan", o] }), n.invalidateQueries({ queryKey: ["plans"] });
216
216
  }
217
217
  });
218
218
  }
219
- async function T(e) {
220
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${e}/action/prune`, {
219
+ async function R(n) {
220
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${n}/action/prune`, {
221
221
  method: "POST",
222
222
  credentials: "include",
223
- headers: n
223
+ headers: e
224
224
  })).json();
225
225
  if (!t.success)
226
226
  throw new Error(t.error);
227
227
  return t;
228
228
  }
229
- function J() {
230
- const e = c();
229
+ function x() {
230
+ const n = i();
231
231
  return r({
232
- mutationFn: T,
233
- onError: (n) => {
234
- console.log("error :", n == null ? void 0 : n.message), l.error(n.message || "Error Removing Old Backups.");
232
+ mutationFn: R,
233
+ onError: (e) => {
234
+ console.log("error :", e == null ? void 0 : e.message), u.error(e.message || "Error Removing Old Backups.");
235
235
  },
236
- onSuccess: (n, o) => {
237
- console.log("# Backup Pruned! :", n, o), e.invalidateQueries({ queryKey: ["plan", o] }), l.success((n == null ? void 0 : n.message) || "Removed Old Backups Successfully!", { autoClose: 5e3 });
236
+ onSuccess: (e, o) => {
237
+ console.log("# Backup Pruned! :", e, o), n.invalidateQueries({ queryKey: ["plan", o] }), u.success((e == null ? void 0 : e.message) || "Removed Old Backups Successfully!", { autoClose: 5e3 });
238
238
  }
239
239
  });
240
240
  }
241
- async function R(e) {
242
- const n = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${e}/action/unlock`, {
241
+ async function T(n) {
242
+ const e = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${a}/plans/${n}/action/unlock`, {
243
243
  method: "POST",
244
244
  credentials: "include",
245
- headers: n
245
+ headers: e
246
246
  })).json();
247
247
  if (!t.success)
248
248
  throw new Error(t.error);
249
249
  return t;
250
250
  }
251
- function x() {
252
- const e = c();
251
+ function _() {
252
+ const n = i();
253
253
  return r({
254
- mutationFn: R,
255
- onError: (n) => {
256
- console.log("error :", n == null ? void 0 : n.message), l.error(n.message || "Error Removing stale locks.");
254
+ mutationFn: T,
255
+ onError: (e) => {
256
+ console.log("error :", e == null ? void 0 : e.message), u.error(e.message || "Error Removing stale locks.");
257
257
  },
258
- onSuccess: (n, o) => {
259
- console.log("# Backup Pruned! :", n, o), e.invalidateQueries({ queryKey: ["plan", o] }), l.success("Removed Stale locks Successfully!", { autoClose: 5e3 });
258
+ onSuccess: (e, o) => {
259
+ console.log("# Backup Pruned! :", e, o), n.invalidateQueries({ queryKey: ["plan", o] }), u.success("Removed Stale locks Successfully!", { autoClose: 5e3 });
260
260
  }
261
261
  });
262
262
  }
263
- async function L(e, n = "backup") {
264
- const o = new URL(`${a}/plans/${e}/checkactive`);
265
- o.searchParams.append("type", n);
263
+ async function O(n, e = "backup") {
264
+ const o = new URL(`${a}/plans/${n}/checkactive`);
265
+ o.searchParams.append("type", e);
266
266
  const s = await (await fetch(o.toString(), {
267
267
  method: "GET",
268
268
  credentials: "include"
@@ -271,39 +271,70 @@ async function L(e, n = "backup") {
271
271
  throw new Error(s.error);
272
272
  return s;
273
273
  }
274
- function _() {
274
+ function z() {
275
275
  return r({
276
276
  // queryKey: ['planActiveBackups-' + planId],
277
- mutationFn: ({ planId: e, type: n }) => L(e, n)
277
+ mutationFn: ({ planId: n, type: e }) => O(n, e)
278
278
  // refetchOnMount: true,
279
279
  });
280
280
  }
281
+ async function L({
282
+ planID: n,
283
+ storageID: e,
284
+ storagePath: o,
285
+ removeData: t,
286
+ replicationId: s
287
+ }) {
288
+ const d = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), c = await (await fetch(`${a}/plans/${n}/action/delete-replication-storage`, {
289
+ method: "POST",
290
+ credentials: "include",
291
+ headers: d,
292
+ body: JSON.stringify({ storageID: e, storagePath: o, removeData: t, replicationId: s })
293
+ })).json();
294
+ if (!c.success)
295
+ throw new Error(c.error);
296
+ return c;
297
+ }
298
+ function V() {
299
+ const n = i();
300
+ return r({
301
+ mutationFn: L,
302
+ onError: (e) => {
303
+ console.log("error :", e == null ? void 0 : e.message), u.error(e.message || "Error removing replication storage.");
304
+ },
305
+ onSuccess: (e, o) => {
306
+ console.log("# Replication Storage Removed! :", e, o), n.invalidateQueries({ queryKey: ["plan", o.planID] }), n.invalidateQueries({ queryKey: ["plans"] }), u.success((e == null ? void 0 : e.message) || "Replication storage removed successfully!", { autoClose: 5e3 });
307
+ }
308
+ });
309
+ }
281
310
  export {
282
- L as checkActiveBackupsOrRestore,
283
- k as createPlan,
284
- S as deletePlan,
285
- E as downloadPlanLogs,
311
+ O as checkActiveBackupsOrRestore,
312
+ E as createPlan,
313
+ v as deletePlan,
314
+ L as deleteReplicationStorage,
315
+ S as downloadPlanLogs,
286
316
  g as getAllPlans,
287
317
  j as getPlanLogs,
288
318
  P as getSinglePlan,
289
- v as pausePlan,
319
+ k as pausePlan,
290
320
  $ as performBackup,
291
- T as prunePlan,
321
+ R as prunePlan,
292
322
  C as resumePlan,
293
- R as unlockPlan,
323
+ T as unlockPlan,
294
324
  q as updatePlan,
295
- _ as useCheckActiveBackupsOrRestore,
296
- B as useCreatePlan,
297
- D as useDeletePlan,
298
- A as useGetDownloadLogs,
299
- Q as useGetPlan,
325
+ z as useCheckActiveBackupsOrRestore,
326
+ D as useCreatePlan,
327
+ H as useDeletePlan,
328
+ V as useDeleteReplicationStorage,
329
+ B as useGetDownloadLogs,
330
+ A as useGetPlan,
300
331
  U as useGetPlanLogs,
301
- F as useGetPlans,
302
- M as usePausePlan,
303
- H as usePerformBackup,
304
- J as usePrunePlan,
305
- N as useResumePlan,
306
- x as useUnlockPlan,
332
+ b as useGetPlans,
333
+ N as usePausePlan,
334
+ M as usePerformBackup,
335
+ x as usePrunePlan,
336
+ J as useResumePlan,
337
+ _ as useUnlockPlan,
307
338
  G as useUpdatePlan
308
339
  };
309
340
  //# 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"],"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"],"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 } 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"],"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"],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare function getSingleRestore(id: string): Promise<any>;
4
4
  export declare function useGetRestore(id: string): import("@tanstack/react-query").UseQueryResult<any, Error>;
5
5
  export declare function deleteRestore(id: string): Promise<any>;
6
6
  export declare function useDeleteRestore(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
7
- export declare function restoreBackup({ backupId, planId, target, overwrite, includes, excludes, deleteOption, }: {
7
+ export declare function restoreBackup({ backupId, planId, target, overwrite, includes, excludes, deleteOption, storageId, replicationId, }: {
8
8
  backupId: string;
9
9
  planId: string;
10
10
  target: string;
@@ -12,6 +12,8 @@ export declare function restoreBackup({ backupId, planId, target, overwrite, inc
12
12
  includes?: string[];
13
13
  excludes?: string[];
14
14
  deleteOption: boolean;
15
+ storageId?: string;
16
+ replicationId?: string;
15
17
  }): Promise<any>;
16
18
  export declare function useRestoreBackup(): import("@tanstack/react-query").UseMutationResult<any, Error, {
17
19
  backupId: string;
@@ -21,8 +23,10 @@ export declare function useRestoreBackup(): import("@tanstack/react-query").UseM
21
23
  includes?: string[];
22
24
  excludes?: string[];
23
25
  deleteOption: boolean;
26
+ storageId?: string;
27
+ replicationId?: string;
24
28
  }, unknown>;
25
- export declare function getDryRestoreStats({ backupId, planId, target, overwrite, includes, excludes, deleteOption, }: {
29
+ export declare function getDryRestoreStats({ backupId, planId, target, overwrite, includes, excludes, deleteOption, storageId, replicationId, }: {
26
30
  backupId: string;
27
31
  planId: string;
28
32
  target: string;
@@ -30,6 +34,8 @@ export declare function getDryRestoreStats({ backupId, planId, target, overwrite
30
34
  includes?: string[];
31
35
  excludes?: string[];
32
36
  deleteOption?: boolean;
37
+ storageId?: string;
38
+ replicationId?: string;
33
39
  }): Promise<any>;
34
40
  export declare function useGetDryRestoreStats(): import("@tanstack/react-query").UseMutationResult<any, Error, {
35
41
  backupId: string;
@@ -39,6 +45,8 @@ export declare function useGetDryRestoreStats(): import("@tanstack/react-query")
39
45
  includes?: string[];
40
46
  excludes?: string[];
41
47
  deleteOption?: boolean;
48
+ storageId?: string;
49
+ replicationId?: string;
42
50
  }, unknown>;
43
51
  export declare function getRestoreStats(id: string): Promise<any>;
44
52
  export declare function useGetRestoreStats(id: string): import("@tanstack/react-query").UseQueryResult<any, Error>;