@plutonhq/core-frontend 0.1.31 → 0.1.33

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 (143) hide show
  1. package/dist-lib/@types/plans.d.ts +4 -0
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/AddPlan/AddPlan.d.ts.map +1 -1
  4. package/dist-lib/components/Plan/AddPlan/AddPlan.js +29 -24
  5. package/dist-lib/components/Plan/AddPlan/AddPlan.js.map +1 -1
  6. package/dist-lib/components/Plan/BackupEvents/BackupEvents.js +33 -33
  7. package/dist-lib/components/Plan/BackupEvents/BackupEvents.js.map +1 -1
  8. package/dist-lib/components/Plan/BackupEvents/BackupEvents.module.scss.js +36 -36
  9. package/dist-lib/components/Plan/BackupProgress/BackupProgress.d.ts.map +1 -1
  10. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js +63 -53
  11. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js.map +1 -1
  12. package/dist-lib/components/Plan/BackupProgress/BackupProgress.module.scss.js +32 -32
  13. package/dist-lib/components/Plan/Backups/Backups.d.ts.map +1 -1
  14. package/dist-lib/components/Plan/Backups/Backups.js +148 -144
  15. package/dist-lib/components/Plan/Backups/Backups.js.map +1 -1
  16. package/dist-lib/components/Plan/Backups/Backups.module.scss.js +34 -32
  17. package/dist-lib/components/Plan/Backups/Backups.module.scss.js.map +1 -1
  18. package/dist-lib/components/Plan/FilterPlans/FilterPlans.d.ts +9 -0
  19. package/dist-lib/components/Plan/FilterPlans/FilterPlans.d.ts.map +1 -0
  20. package/dist-lib/components/Plan/FilterPlans/FilterPlans.js +117 -0
  21. package/dist-lib/components/Plan/FilterPlans/FilterPlans.js.map +1 -0
  22. package/dist-lib/components/Plan/FilterPlans/FilterPlans.module.scss.js +20 -0
  23. package/dist-lib/components/Plan/FilterPlans/FilterPlans.module.scss.js.map +1 -0
  24. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts +4 -2
  25. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts.map +1 -1
  26. package/dist-lib/components/Plan/PlanForm/PlanForm.js +33 -29
  27. package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
  28. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts +2 -1
  29. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts.map +1 -1
  30. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js +85 -57
  31. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js.map +1 -1
  32. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js +11 -9
  33. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js.map +1 -1
  34. package/dist-lib/components/Plan/PlanItems/PlanItem.js +1 -1
  35. package/dist-lib/components/Plan/PlanItems/PlanItem.js.map +1 -1
  36. package/dist-lib/components/Plan/PlanRepair/PlanRepair.d.ts +9 -0
  37. package/dist-lib/components/Plan/PlanRepair/PlanRepair.d.ts.map +1 -0
  38. package/dist-lib/components/Plan/PlanRepair/PlanRepair.js +262 -0
  39. package/dist-lib/components/Plan/PlanRepair/PlanRepair.js.map +1 -0
  40. package/dist-lib/components/Plan/PlanRepair/PlanRepair.module.scss.js +14 -0
  41. package/dist-lib/components/Plan/PlanRepair/PlanRepair.module.scss.js.map +1 -0
  42. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.d.ts +4 -2
  43. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.d.ts.map +1 -1
  44. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +24 -22
  45. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  46. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.d.ts +4 -2
  47. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.d.ts.map +1 -1
  48. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.js +39 -28
  49. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.js.map +1 -1
  50. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +66 -64
  51. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  52. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.d.ts +7 -0
  53. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.d.ts.map +1 -0
  54. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.js +116 -0
  55. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.js.map +1 -0
  56. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.module.scss.js +20 -0
  57. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.module.scss.js.map +1 -0
  58. package/dist-lib/components/Plan/PlanStats/PlanStats.d.ts.map +1 -1
  59. package/dist-lib/components/Plan/PlanStats/PlanStats.js +29 -30
  60. package/dist-lib/components/Plan/PlanStats/PlanStats.js.map +1 -1
  61. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js +16 -14
  62. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js.map +1 -1
  63. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  64. package/dist-lib/components/common/Icon/Icon.js +395 -378
  65. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  66. package/dist-lib/components/common/SortItems/SortItems.d.ts +2 -1
  67. package/dist-lib/components/common/SortItems/SortItems.d.ts.map +1 -1
  68. package/dist-lib/components/common/SortItems/SortItems.js +14 -14
  69. package/dist-lib/components/common/SortItems/SortItems.js.map +1 -1
  70. package/dist-lib/components/common/SortItems/SortItems.module.scss.js +1 -1
  71. package/dist-lib/components/common/form/MultiSelect/MultiSelect.module.scss.js +16 -16
  72. package/dist-lib/components/index.d.ts +2 -0
  73. package/dist-lib/components/index.d.ts.map +1 -1
  74. package/dist-lib/components.js +199 -195
  75. package/dist-lib/components.js.map +1 -1
  76. package/dist-lib/hooks/usePlanSingleActions.d.ts.map +1 -1
  77. package/dist-lib/hooks/usePlanSingleActions.js +22 -19
  78. package/dist-lib/hooks/usePlanSingleActions.js.map +1 -1
  79. package/dist-lib/node_modules/.pnpm/@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js +449 -0
  80. package/dist-lib/node_modules/.pnpm/@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js.map +1 -0
  81. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js +5219 -0
  82. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js.map +1 -0
  83. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js +1691 -0
  84. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js.map +1 -0
  85. package/dist-lib/node_modules/.pnpm/react-chartjs-2@5.3.1_chart.js@4.5.1_react@18.3.1/node_modules/react-chartjs-2/dist/index.js +93 -0
  86. package/dist-lib/node_modules/.pnpm/react-chartjs-2@5.3.1_chart.js@4.5.1_react@18.3.1/node_modules/react-chartjs-2/dist/index.js.map +1 -0
  87. package/dist-lib/routes/Login/Login.d.ts.map +1 -1
  88. package/dist-lib/routes/Login/Login.js +45 -36
  89. package/dist-lib/routes/Login/Login.js.map +1 -1
  90. package/dist-lib/routes/PlanSingle/PlanSingle.d.ts.map +1 -1
  91. package/dist-lib/routes/PlanSingle/PlanSingle.js +131 -118
  92. package/dist-lib/routes/PlanSingle/PlanSingle.js.map +1 -1
  93. package/dist-lib/routes/Plans/Plans.d.ts.map +1 -1
  94. package/dist-lib/routes/Plans/Plans.js +77 -51
  95. package/dist-lib/routes/Plans/Plans.js.map +1 -1
  96. package/dist-lib/services/plans.d.ts +33 -5
  97. package/dist-lib/services/plans.d.ts.map +1 -1
  98. package/dist-lib/services/plans.js +92 -67
  99. package/dist-lib/services/plans.js.map +1 -1
  100. package/dist-lib/services.js +93 -91
  101. package/dist-lib/styles/core-frontend.css +1 -1
  102. package/dist-lib/styles/global.scss +4 -0
  103. package/dist-lib/utils/helpers.d.ts +2 -0
  104. package/dist-lib/utils/helpers.d.ts.map +1 -1
  105. package/dist-lib/utils/helpers.js +68 -42
  106. package/dist-lib/utils/helpers.js.map +1 -1
  107. package/dist-lib/utils.js +36 -34
  108. package/package.json +3 -1
  109. package/src/@types/plans.ts +5 -0
  110. package/src/components/Plan/AddPlan/AddPlan.tsx +22 -16
  111. package/src/components/Plan/BackupEvents/BackupEvents.module.scss +2 -0
  112. package/src/components/Plan/BackupEvents/BackupEvents.tsx +2 -2
  113. package/src/components/Plan/BackupProgress/BackupProgress.module.scss +1 -0
  114. package/src/components/Plan/BackupProgress/BackupProgress.tsx +7 -2
  115. package/src/components/Plan/Backups/Backups.module.scss +16 -0
  116. package/src/components/Plan/Backups/Backups.tsx +13 -2
  117. package/src/components/Plan/FilterPlans/FilterPlans.module.scss +65 -0
  118. package/src/components/Plan/FilterPlans/FilterPlans.tsx +126 -0
  119. package/src/components/Plan/PlanForm/PlanForm.tsx +7 -1
  120. package/src/components/Plan/PlanIntegrity/PlanIntegrity.module.scss +19 -0
  121. package/src/components/Plan/PlanIntegrity/PlanIntegrity.tsx +40 -3
  122. package/src/components/Plan/PlanItems/PlanItem.tsx +1 -1
  123. package/src/components/Plan/PlanRepair/PlanRepair.module.scss +53 -0
  124. package/src/components/Plan/PlanRepair/PlanRepair.tsx +243 -0
  125. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +6 -2
  126. package/src/components/Plan/PlanSettings/PlanGeneralSettings.tsx +14 -2
  127. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +8 -0
  128. package/src/components/Plan/PlanSizeChart/PlanSizeChart.module.scss +76 -0
  129. package/src/components/Plan/PlanSizeChart/PlanSizeChart.tsx +163 -0
  130. package/src/components/Plan/PlanStats/PlanStats.module.scss +16 -2
  131. package/src/components/Plan/PlanStats/PlanStats.tsx +8 -11
  132. package/src/components/common/Icon/Icon.tsx +21 -0
  133. package/src/components/common/SortItems/SortItems.module.scss +3 -2
  134. package/src/components/common/SortItems/SortItems.tsx +6 -3
  135. package/src/components/common/form/MultiSelect/MultiSelect.module.scss +1 -0
  136. package/src/components/index.ts +2 -0
  137. package/src/hooks/usePlanSingleActions.tsx +26 -23
  138. package/src/routes/Login/Login.tsx +8 -2
  139. package/src/routes/PlanSingle/PlanSingle.tsx +17 -0
  140. package/src/routes/Plans/Plans.tsx +70 -35
  141. package/src/services/plans.ts +40 -4
  142. package/src/styles/global.scss +4 -0
  143. package/src/utils/helpers.ts +25 -0
@@ -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, PlanNotification } from '../@types/plans';\r\n\r\n// Get All Plans\r\nexport async function getAllPlans() {\r\n const url = new URL(`${API_URL}/plans`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlans() {\r\n return useQuery({\r\n queryKey: ['plans'],\r\n queryFn: () => getAllPlans(),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get Single Plan\r\nexport async function getSinglePlan(id: string) {\r\n if (!id) {\r\n throw new Error('ID Not Provided.');\r\n }\r\n const url = new URL(`${API_URL}/plans/${id}`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n const error = new Error(data.error) as Error & { status?: number };\r\n error.status = res.status;\r\n throw error;\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlan(id: string) {\r\n return useQuery({\r\n queryKey: ['plan', id],\r\n queryFn: () => getSinglePlan(id),\r\n refetchOnMount: true,\r\n retry: false,\r\n staleTime: 0,\r\n });\r\n}\r\n\r\n// Get Plan Logs\r\nexport async function getPlanLogs(planId: string) {\r\n const url = new URL(`${API_URL}/plans/${planId}/logs`);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n const error = new Error(data.error) as Error & { status?: number };\r\n error.status = res.status;\r\n throw error;\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetPlanLogs(planId: string) {\r\n return useQuery({\r\n queryKey: ['planLogs', planId],\r\n queryFn: () => getPlanLogs(planId),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Download Plan Logs\r\nexport async function downloadPlanLogs(id: string) {\r\n const res = await fetch(`${API_URL}/plans/${id}/logs/download`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n\r\n const filename = res.headers.get('content-disposition')?.split('filename=')[1] || `plan-${id}.log`;\r\n\r\n // Use streams API\r\n const reader = res.body?.getReader();\r\n const stream = new ReadableStream({\r\n async start(controller) {\r\n while (true) {\r\n const { done, value } = await reader!.read();\r\n if (done) break;\r\n controller.enqueue(value);\r\n }\r\n controller.close();\r\n reader!.releaseLock();\r\n },\r\n });\r\n\r\n // Create download from stream\r\n const blob = await new Response(stream).blob();\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\nexport function useGetDownloadLogs() {\r\n return useMutation({\r\n mutationFn: downloadPlanLogs,\r\n onSuccess: (res) => {\r\n console.log('# Logs Downloaded! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Logs Download Failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// Create New Plan\r\nexport async function createPlan(newPlan: NewPlanSettings) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n console.log('newPlan :', newPlan);\r\n const res = await fetch(`${API_URL}/plans`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(newPlan),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error || data.result);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCreatePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPlan,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Plan Created! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// UpdatePlan\r\nexport async function updatePlan(updatePayload: { id: string; data: Partial<Plan> }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n console.log('newPlan :', updatePayload);\r\n const res = await fetch(`${API_URL}/plans/${updatePayload.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ plan: updatePayload.data }),\r\n });\r\n const data = await res.json();\r\n console.log('data :', data);\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUpdatePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updatePlan,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Plan Updated! :', res);\r\n const planID = res?.result?.id;\r\n if (planID) {\r\n queryClient.invalidateQueries({ queryKey: ['plan', planID] });\r\n }\r\n\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Plan\r\nexport async function deletePlan({ id, removeRemoteData }: { id: string; removeRemoteData: boolean }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}?removeData=${removeRemoteData}`, {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeletePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deletePlan,\r\n onSuccess: (res) => {\r\n console.log('# Plan Removed! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Perform Backup\r\nexport async function performBackup(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/backup`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePerformBackup() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: performBackup,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Started! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Pause Backup\r\nexport async function pausePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/pause`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePausePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: pausePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Paused! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Resume Backup\r\nexport async function resumePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/resume`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useResumePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: resumePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Resumed! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Prune Backup Plan\r\nexport async function prunePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/prune`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePrunePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: prunePlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing Old Backups.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(res?.message || `Removed Old Backups Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Unlock Backup Plan\r\nexport async function unlockPlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/unlock`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUnlockPlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: unlockPlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing stale locks.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(`Removed Stale locks Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Get Backup Progress\r\nexport async function checkActiveBackupsOrRestore(planId: string, type: 'backup' | 'restore' = 'backup') {\r\n const url = new URL(`${API_URL}/plans/${planId}/checkactive`);\r\n url.searchParams.append('type', type);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckActiveBackupsOrRestore() {\r\n return useMutation({\r\n // queryKey: ['planActiveBackups-' + planId],\r\n mutationFn: ({ planId, type }: { planId: string; type: 'backup' | 'restore' }) => checkActiveBackupsOrRestore(planId, type),\r\n // refetchOnMount: true,\r\n });\r\n}\r\n\r\n// Remove Replication Storage\r\nexport async function deleteReplicationStorage({\r\n planID,\r\n storageID,\r\n storagePath,\r\n removeData,\r\n replicationId,\r\n}: {\r\n planID: string;\r\n storageID: string;\r\n storagePath: string;\r\n removeData: boolean;\r\n replicationId?: string;\r\n}) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planID}/action/delete-replication-storage`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ storageID, storagePath, removeData, replicationId }),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeleteReplicationStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteReplicationStorage,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error removing replication storage.`);\r\n },\r\n onSuccess: (res, variables) => {\r\n console.log('# Replication Storage Removed! :', res, variables);\r\n queryClient.invalidateQueries({ queryKey: ['plan', variables.planID] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n toast.success(res?.message || `Replication storage removed successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\nexport async function checkPlanIntegrity({ planId }: { planId: string }) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planId}/action/checkintegrity`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckPlanIntegrity() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: checkPlanIntegrity,\r\n onSuccess: (res, payload) => {\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n console.log('res :', payload, res);\r\n },\r\n onError: (error, payload) => {\r\n console.error('Error checking plan integrity for planId:', payload.planId, error);\r\n toast.error(`Error checking plan integrity. ${error instanceof Error ? error.message : 'Unknown error'}`, { autoClose: false });\r\n },\r\n });\r\n}\r\n\r\nexport async function sendTestNotificationRequest(payload: {\r\n planId: string;\r\n notificationCase: string;\r\n notificationChannel: 'webhook' | 'slack' | 'discord';\r\n channelSettings: PlanNotification['webhook'] | PlanNotification['slack'] | PlanNotification['discord'];\r\n}) {\r\n console.log('payload :', payload);\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${payload.planId}/action/test-notification`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify(payload),\r\n });\r\n\r\n // Check if response is ok\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n\r\n const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useTestNotification() {\r\n return useMutation({\r\n mutationFn: sendTestNotificationRequest,\r\n onSuccess: (res) => {\r\n console.log('# Test notification request sent successfully! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Test notification request failed! :', res);\r\n },\r\n });\r\n}\r\n"],"names":["getAllPlans","url","API_URL","data","useGetPlans","useQuery","getSinglePlan","id","res","error","useGetPlan","getPlanLogs","planId","useGetPlanLogs","downloadPlanLogs","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetDownloadLogs","useMutation","createPlan","newPlan","header","useCreatePlan","queryClient","useQueryClient","updatePlan","updatePayload","useUpdatePlan","planID","deletePlan","removeRemoteData","useDeletePlan","performBackup","usePerformBackup","pausePlan","usePausePlan","resumePlan","useResumePlan","prunePlan","usePrunePlan","toast","unlockPlan","useUnlockPlan","checkActiveBackupsOrRestore","type","useCheckActiveBackupsOrRestore","deleteReplicationStorage","storageID","storagePath","removeData","replicationId","useDeleteReplicationStorage","variables","checkPlanIntegrity","useCheckPlanIntegrity","payload","sendTestNotificationRequest","headers","useTestNotification"],"mappings":"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"}
1
+ {"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, PlanAddRunSettings, PlanNotification } from '../@types/plans';\r\n\r\ntype BackupRunConfig = {\r\n skipDryRun?: boolean;\r\n skipPrune?: boolean;\r\n ignoreErrors?: boolean;\r\n};\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, runSettings }: { newPlan: NewPlanSettings; runSettings: PlanAddRunSettings }) {\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({ plan: newPlan, runSettings }),\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, runConfig }: { id: string; runConfig?: BackupRunConfig }) {\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 body: JSON.stringify({ runConfig }),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePerformBackup() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: performBackup,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Started! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Pause Backup\r\nexport async function pausePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/pause`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePausePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: pausePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Paused! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Resume Backup\r\nexport async function resumePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/resume`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useResumePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: resumePlan,\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Resumed! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n },\r\n });\r\n}\r\n\r\n// Prune Backup Plan\r\nexport async function prunePlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/prune`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePrunePlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: prunePlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing Old Backups.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(res?.message || `Removed Old Backups Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Unlock Backup Plan\r\nexport async function unlockPlan(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${id}/action/unlock`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useUnlockPlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: unlockPlan,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing stale locks.`);\r\n },\r\n onSuccess: (res, planId) => {\r\n console.log('# Backup Pruned! :', res, planId);\r\n queryClient.invalidateQueries({ queryKey: ['plan', planId] });\r\n toast.success(`Removed Stale locks Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\n// Get Backup Progress\r\nexport async function checkActiveBackupsOrRestore(planId: string, type: 'backup' | 'restore' = 'backup') {\r\n const url = new URL(`${API_URL}/plans/${planId}/checkactive`);\r\n url.searchParams.append('type', type);\r\n\r\n const res = await fetch(url.toString(), {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckActiveBackupsOrRestore() {\r\n return useMutation({\r\n // queryKey: ['planActiveBackups-' + planId],\r\n mutationFn: ({ planId, type }: { planId: string; type: 'backup' | 'restore' }) => checkActiveBackupsOrRestore(planId, type),\r\n // refetchOnMount: true,\r\n });\r\n}\r\n\r\n// Remove Replication Storage\r\nexport async function deleteReplicationStorage({\r\n planID,\r\n storageID,\r\n storagePath,\r\n removeData,\r\n replicationId,\r\n}: {\r\n planID: string;\r\n storageID: string;\r\n storagePath: string;\r\n removeData: boolean;\r\n replicationId?: string;\r\n}) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planID}/action/delete-replication-storage`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ storageID, storagePath, removeData, replicationId }),\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeleteReplicationStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteReplicationStorage,\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error removing replication storage.`);\r\n },\r\n onSuccess: (res, variables) => {\r\n console.log('# Replication Storage Removed! :', res, variables);\r\n queryClient.invalidateQueries({ queryKey: ['plan', variables.planID] });\r\n queryClient.invalidateQueries({ queryKey: ['plans'] });\r\n toast.success(res?.message || `Replication storage removed successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n}\r\n\r\nexport async function checkPlanIntegrity({ planId }: { planId: string }) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planId}/action/checkintegrity`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n // headers: header,\r\n });\r\n // Check if response is ok\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useCheckPlanIntegrity() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: checkPlanIntegrity,\r\n onSuccess: (res, payload) => {\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n console.log('res :', payload, res);\r\n },\r\n onError: (error, payload) => {\r\n console.error('Error checking plan integrity for planId:', payload.planId, error);\r\n toast.error(`Error checking plan integrity. ${error instanceof Error ? error.message : 'Unknown error'}`, { autoClose: false });\r\n },\r\n });\r\n}\r\n\r\nexport async function repairBackupPlan({ planId, type, replicationId }: { planId: string; type: string; replicationId?: string }) {\r\n // const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${planId}/action/repair?type=${type}${replicationId ? `&replicationId=${replicationId}` : ''}`, {\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 useRepairBackupPlan() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: repairBackupPlan,\r\n onSuccess: (res, payload) => {\r\n queryClient.invalidateQueries({ queryKey: ['plan', payload.planId] });\r\n console.log('res :', payload, res);\r\n },\r\n onError: (error, payload) => {\r\n console.error('Error repairing backup plan for planId:', payload.planId, error);\r\n },\r\n });\r\n}\r\n\r\nexport async function sendTestNotificationRequest(payload: {\r\n planId: string;\r\n notificationCase: string;\r\n notificationChannel: 'webhook' | 'slack' | 'discord';\r\n channelSettings: PlanNotification['webhook'] | PlanNotification['slack'] | PlanNotification['discord'];\r\n}) {\r\n console.log('payload :', payload);\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/plans/${payload.planId}/action/test-notification`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify(payload),\r\n });\r\n\r\n // Check if response is ok\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n\r\n const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useTestNotification() {\r\n return useMutation({\r\n mutationFn: sendTestNotificationRequest,\r\n onSuccess: (res) => {\r\n console.log('# Test notification request sent successfully! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# Test notification request failed! :', res);\r\n },\r\n });\r\n}\r\n"],"names":["getAllPlans","url","API_URL","data","useGetPlans","useQuery","getSinglePlan","id","res","error","useGetPlan","getPlanLogs","planId","useGetPlanLogs","downloadPlanLogs","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetDownloadLogs","useMutation","createPlan","newPlan","runSettings","header","useCreatePlan","queryClient","useQueryClient","updatePlan","updatePayload","useUpdatePlan","planID","deletePlan","removeRemoteData","useDeletePlan","performBackup","runConfig","usePerformBackup","pausePlan","usePausePlan","resumePlan","useResumePlan","prunePlan","usePrunePlan","toast","unlockPlan","useUnlockPlan","checkActiveBackupsOrRestore","type","useCheckActiveBackupsOrRestore","deleteReplicationStorage","storageID","storagePath","removeData","replicationId","useDeleteReplicationStorage","variables","checkPlanIntegrity","useCheckPlanIntegrity","payload","repairBackupPlan","useRepairBackupPlan","sendTestNotificationRequest","headers","useTestNotification"],"mappings":"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"}
@@ -1,136 +1,138 @@
1
- import { cancelBackup as s, cancelBackupDownload as a, deleteBackup as o, generateBackupDownload as u, getBackupDownload as r, getBackupProgress as l, getSnapshotFiles as n, retryFailedReplications as c, updateBackup as g, useBrowseSnapshot as p, useCancelBackup as i, useCancelBackupDownload as S, useDeleteBackup as d, useDownloadBackup as P, useGetBackupDownload as k, useGetBackupProgress as D, useGetBackupProgressOnce as R, useGetSnapshotFiles as B, useRetryFailedReplications as G, useUpdateBackup as A } from "./services/backups.js";
1
+ import { cancelBackup as s, cancelBackupDownload as a, deleteBackup as o, generateBackupDownload as u, getBackupDownload as r, getBackupProgress as l, getSnapshotFiles as n, retryFailedReplications as p, updateBackup as c, useBrowseSnapshot as g, useCancelBackup as i, useCancelBackupDownload as S, useDeleteBackup as d, useDownloadBackup as P, useGetBackupDownload as k, useGetBackupProgress as R, useGetBackupProgressOnce as B, useGetSnapshotFiles as D, useRetryFailedReplications as G, useUpdateBackup as A } from "./services/backups.js";
2
2
  import { browseDir as h, getAllDevices as f, getDevice as m, getSystemMetrics as v, updateDependent as y, updateDevice as L, useBrowseDir as F, useGetDevice as T, useGetDevices as U, useGetSystemMetrics as C, useUpdateDependent as x, useUpdateDevice as O } from "./services/devices.js";
3
- import { checkActiveBackupsOrRestore as I, checkPlanIntegrity as b, createPlan as z, deletePlan as M, deleteReplicationStorage as N, downloadPlanLogs as q, getAllPlans as j, getPlanLogs as E, getSinglePlan as H, pausePlan as J, performBackup as K, prunePlan as Q, resumePlan as W, sendTestNotificationRequest as X, unlockPlan as Y, updatePlan as Z, useCheckActiveBackupsOrRestore as _, useCheckPlanIntegrity as $, useCreatePlan as ee, useDeletePlan as te, useDeleteReplicationStorage as se, useGetDownloadLogs as ae, useGetPlan as oe, useGetPlanLogs as ue, useGetPlans as re, usePausePlan as le, usePerformBackup as ne, usePrunePlan as ce, useResumePlan as ge, useTestNotification as pe, useUnlockPlan as ie, useUpdatePlan as Se } from "./services/plans.js";
4
- import { cancelRestore as Pe, deleteRestore as ke, getAllRestores as De, getDryRestoreStats as Re, getRestoreProgress as Be, getRestoreStats as Ge, getSingleRestore as Ae, restoreBackup as we, useCancelRestore as he, useDeleteRestore as fe, useGetDryRestoreStats as me, useGetRestore as ve, useGetRestoreProgress as ye, useGetRestoreProgressOnce as Le, useGetRestoreStats as Fe, useGetRestores as Te, useRestoreBackup as Ue } from "./services/restores.js";
5
- import { checkLatestVersion as xe, completeSetup as Oe, downloadAppLogs as Ve, getAppLogs as Ie, getSettings as be, getSetupStatus as ze, setupTwoFactorAuth as Me, updateSettings as Ne, useCheckLatestVersion as qe, useCompleteSetup as je, useGetAppLogs as Ee, useGetDownloadAppLogs as He, useGetSettings as Je, useSetupStatus as Ke, useSetupTwoFactorAuth as Qe, useUpdateSettings as We, useValidateIntegration as Xe, useVerifyTwoFactorAuth as Ye, useVerifyTwoFactorOTP as Ze, validateIntegration as _e, verifyTwoFactorAuth as $e, verifyTwoFactorOTP as et } from "./services/settings.js";
6
- import { addStorage as st, cancelStorageAuthorize as at, deleteStorage as ot, getAllStorages as ut, getAvailableStorages as rt, getStorage as lt, getStorageAuthorizeStatus as nt, startStorageAuthorize as ct, updateStorage as gt, useAddStorage as pt, useDeleteStorage as it, useGetAvailableStorages as St, useGetStorage as dt, useGetStorages as Pt, useUpdateStorage as kt, useVerifyStorage as Dt, verifyStorage as Rt } from "./services/storage.js";
7
- import { loginUser as Gt, logoutUser as At, useAuth as wt, useLogin as ht, useLogout as ft, validateAuth as mt } from "./services/users.js";
3
+ import { checkActiveBackupsOrRestore as I, checkPlanIntegrity as b, createPlan as z, deletePlan as M, deleteReplicationStorage as N, downloadPlanLogs as q, getAllPlans as j, getPlanLogs as E, getSinglePlan as H, pausePlan as J, performBackup as K, prunePlan as Q, repairBackupPlan as W, resumePlan as X, sendTestNotificationRequest as Y, unlockPlan as Z, updatePlan as _, useCheckActiveBackupsOrRestore as $, useCheckPlanIntegrity as ee, useCreatePlan as te, useDeletePlan as se, useDeleteReplicationStorage as ae, useGetDownloadLogs as oe, useGetPlan as ue, useGetPlanLogs as re, useGetPlans as le, usePausePlan as ne, usePerformBackup as pe, usePrunePlan as ce, useRepairBackupPlan as ge, useResumePlan as ie, useTestNotification as Se, useUnlockPlan as de, useUpdatePlan as Pe } from "./services/plans.js";
4
+ import { cancelRestore as Re, deleteRestore as Be, getAllRestores as De, getDryRestoreStats as Ge, getRestoreProgress as Ae, getRestoreStats as we, getSingleRestore as he, restoreBackup as fe, useCancelRestore as me, useDeleteRestore as ve, useGetDryRestoreStats as ye, useGetRestore as Le, useGetRestoreProgress as Fe, useGetRestoreProgressOnce as Te, useGetRestoreStats as Ue, useGetRestores as Ce, useRestoreBackup as xe } from "./services/restores.js";
5
+ import { checkLatestVersion as Ve, completeSetup as Ie, downloadAppLogs as be, getAppLogs as ze, getSettings as Me, getSetupStatus as Ne, setupTwoFactorAuth as qe, updateSettings as je, useCheckLatestVersion as Ee, useCompleteSetup as He, useGetAppLogs as Je, useGetDownloadAppLogs as Ke, useGetSettings as Qe, useSetupStatus as We, useSetupTwoFactorAuth as Xe, useUpdateSettings as Ye, useValidateIntegration as Ze, useVerifyTwoFactorAuth as _e, useVerifyTwoFactorOTP as $e, validateIntegration as et, verifyTwoFactorAuth as tt, verifyTwoFactorOTP as st } from "./services/settings.js";
6
+ import { addStorage as ot, cancelStorageAuthorize as ut, deleteStorage as rt, getAllStorages as lt, getAvailableStorages as nt, getStorage as pt, getStorageAuthorizeStatus as ct, startStorageAuthorize as gt, updateStorage as it, useAddStorage as St, useDeleteStorage as dt, useGetAvailableStorages as Pt, useGetStorage as kt, useGetStorages as Rt, useUpdateStorage as Bt, useVerifyStorage as Dt, verifyStorage as Gt } from "./services/storage.js";
7
+ import { loginUser as wt, logoutUser as ht, useAuth as ft, useLogin as mt, useLogout as vt, validateAuth as yt } from "./services/users.js";
8
8
  export {
9
- st as addStorage,
9
+ ot as addStorage,
10
10
  h as browseDir,
11
11
  s as cancelBackup,
12
12
  a as cancelBackupDownload,
13
- Pe as cancelRestore,
14
- at as cancelStorageAuthorize,
13
+ Re as cancelRestore,
14
+ ut as cancelStorageAuthorize,
15
15
  I as checkActiveBackupsOrRestore,
16
- xe as checkLatestVersion,
16
+ Ve as checkLatestVersion,
17
17
  b as checkPlanIntegrity,
18
- Oe as completeSetup,
18
+ Ie as completeSetup,
19
19
  z as createPlan,
20
20
  o as deleteBackup,
21
21
  M as deletePlan,
22
22
  N as deleteReplicationStorage,
23
- ke as deleteRestore,
24
- ot as deleteStorage,
25
- Ve as downloadAppLogs,
23
+ Be as deleteRestore,
24
+ rt as deleteStorage,
25
+ be as downloadAppLogs,
26
26
  q as downloadPlanLogs,
27
27
  u as generateBackupDownload,
28
28
  f as getAllDevices,
29
29
  j as getAllPlans,
30
30
  De as getAllRestores,
31
- ut as getAllStorages,
32
- Ie as getAppLogs,
33
- rt as getAvailableStorages,
31
+ lt as getAllStorages,
32
+ ze as getAppLogs,
33
+ nt as getAvailableStorages,
34
34
  r as getBackupDownload,
35
35
  l as getBackupProgress,
36
36
  m as getDevice,
37
- Re as getDryRestoreStats,
37
+ Ge as getDryRestoreStats,
38
38
  E as getPlanLogs,
39
- Be as getRestoreProgress,
40
- Ge as getRestoreStats,
41
- be as getSettings,
42
- ze as getSetupStatus,
39
+ Ae as getRestoreProgress,
40
+ we as getRestoreStats,
41
+ Me as getSettings,
42
+ Ne as getSetupStatus,
43
43
  H as getSinglePlan,
44
- Ae as getSingleRestore,
44
+ he as getSingleRestore,
45
45
  n as getSnapshotFiles,
46
- lt as getStorage,
47
- nt as getStorageAuthorizeStatus,
46
+ pt as getStorage,
47
+ ct as getStorageAuthorizeStatus,
48
48
  v as getSystemMetrics,
49
- Gt as loginUser,
50
- At as logoutUser,
49
+ wt as loginUser,
50
+ ht as logoutUser,
51
51
  J as pausePlan,
52
52
  K as performBackup,
53
53
  Q as prunePlan,
54
- we as restoreBackup,
55
- W as resumePlan,
56
- c as retryFailedReplications,
57
- X as sendTestNotificationRequest,
58
- Me as setupTwoFactorAuth,
59
- ct as startStorageAuthorize,
60
- Y as unlockPlan,
61
- g as updateBackup,
54
+ W as repairBackupPlan,
55
+ fe as restoreBackup,
56
+ X as resumePlan,
57
+ p as retryFailedReplications,
58
+ Y as sendTestNotificationRequest,
59
+ qe as setupTwoFactorAuth,
60
+ gt as startStorageAuthorize,
61
+ Z as unlockPlan,
62
+ c as updateBackup,
62
63
  y as updateDependent,
63
64
  L as updateDevice,
64
- Z as updatePlan,
65
- Ne as updateSettings,
66
- gt as updateStorage,
67
- pt as useAddStorage,
68
- wt as useAuth,
65
+ _ as updatePlan,
66
+ je as updateSettings,
67
+ it as updateStorage,
68
+ St as useAddStorage,
69
+ ft as useAuth,
69
70
  F as useBrowseDir,
70
- p as useBrowseSnapshot,
71
+ g as useBrowseSnapshot,
71
72
  i as useCancelBackup,
72
73
  S as useCancelBackupDownload,
73
- he as useCancelRestore,
74
- _ as useCheckActiveBackupsOrRestore,
75
- qe as useCheckLatestVersion,
76
- $ as useCheckPlanIntegrity,
77
- je as useCompleteSetup,
78
- ee as useCreatePlan,
74
+ me as useCancelRestore,
75
+ $ as useCheckActiveBackupsOrRestore,
76
+ Ee as useCheckLatestVersion,
77
+ ee as useCheckPlanIntegrity,
78
+ He as useCompleteSetup,
79
+ te as useCreatePlan,
79
80
  d as useDeleteBackup,
80
- te as useDeletePlan,
81
- se as useDeleteReplicationStorage,
82
- fe as useDeleteRestore,
83
- it as useDeleteStorage,
81
+ se as useDeletePlan,
82
+ ae as useDeleteReplicationStorage,
83
+ ve as useDeleteRestore,
84
+ dt as useDeleteStorage,
84
85
  P as useDownloadBackup,
85
- Ee as useGetAppLogs,
86
- St as useGetAvailableStorages,
86
+ Je as useGetAppLogs,
87
+ Pt as useGetAvailableStorages,
87
88
  k as useGetBackupDownload,
88
- D as useGetBackupProgress,
89
- R as useGetBackupProgressOnce,
89
+ R as useGetBackupProgress,
90
+ B as useGetBackupProgressOnce,
90
91
  T as useGetDevice,
91
92
  U as useGetDevices,
92
- He as useGetDownloadAppLogs,
93
- ae as useGetDownloadLogs,
94
- me as useGetDryRestoreStats,
95
- oe as useGetPlan,
96
- ue as useGetPlanLogs,
97
- re as useGetPlans,
98
- ve as useGetRestore,
99
- ye as useGetRestoreProgress,
100
- Le as useGetRestoreProgressOnce,
101
- Fe as useGetRestoreStats,
102
- Te as useGetRestores,
103
- Je as useGetSettings,
104
- B as useGetSnapshotFiles,
105
- dt as useGetStorage,
106
- Pt as useGetStorages,
93
+ Ke as useGetDownloadAppLogs,
94
+ oe as useGetDownloadLogs,
95
+ ye as useGetDryRestoreStats,
96
+ ue as useGetPlan,
97
+ re as useGetPlanLogs,
98
+ le as useGetPlans,
99
+ Le as useGetRestore,
100
+ Fe as useGetRestoreProgress,
101
+ Te as useGetRestoreProgressOnce,
102
+ Ue as useGetRestoreStats,
103
+ Ce as useGetRestores,
104
+ Qe as useGetSettings,
105
+ D as useGetSnapshotFiles,
106
+ kt as useGetStorage,
107
+ Rt as useGetStorages,
107
108
  C as useGetSystemMetrics,
108
- ht as useLogin,
109
- ft as useLogout,
110
- le as usePausePlan,
111
- ne as usePerformBackup,
109
+ mt as useLogin,
110
+ vt as useLogout,
111
+ ne as usePausePlan,
112
+ pe as usePerformBackup,
112
113
  ce as usePrunePlan,
113
- Ue as useRestoreBackup,
114
- ge as useResumePlan,
114
+ ge as useRepairBackupPlan,
115
+ xe as useRestoreBackup,
116
+ ie as useResumePlan,
115
117
  G as useRetryFailedReplications,
116
- Ke as useSetupStatus,
117
- Qe as useSetupTwoFactorAuth,
118
- pe as useTestNotification,
119
- ie as useUnlockPlan,
118
+ We as useSetupStatus,
119
+ Xe as useSetupTwoFactorAuth,
120
+ Se as useTestNotification,
121
+ de as useUnlockPlan,
120
122
  A as useUpdateBackup,
121
123
  x as useUpdateDependent,
122
124
  O as useUpdateDevice,
123
- Se as useUpdatePlan,
124
- We as useUpdateSettings,
125
- kt as useUpdateStorage,
126
- Xe as useValidateIntegration,
125
+ Pe as useUpdatePlan,
126
+ Ye as useUpdateSettings,
127
+ Bt as useUpdateStorage,
128
+ Ze as useValidateIntegration,
127
129
  Dt as useVerifyStorage,
128
- Ye as useVerifyTwoFactorAuth,
129
- Ze as useVerifyTwoFactorOTP,
130
- mt as validateAuth,
131
- _e as validateIntegration,
132
- Rt as verifyStorage,
133
- $e as verifyTwoFactorAuth,
134
- et as verifyTwoFactorOTP
130
+ _e as useVerifyTwoFactorAuth,
131
+ $e as useVerifyTwoFactorOTP,
132
+ yt as validateAuth,
133
+ et as validateIntegration,
134
+ Gt as verifyStorage,
135
+ tt as verifyTwoFactorAuth,
136
+ st as verifyTwoFactorOTP
135
137
  };
136
138
  //# sourceMappingURL=services.js.map