@plutonhq/core-frontend 0.1.21 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist-lib/@types/plans.d.ts +11 -20
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +49 -47
  4. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  5. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts +7 -4
  6. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts.map +1 -1
  7. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js +177 -52
  8. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js.map +1 -1
  9. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts +9 -0
  10. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts.map +1 -0
  11. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js +62 -0
  12. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js.map +1 -0
  13. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js +2 -2
  14. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js.map +1 -1
  15. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +56 -40
  16. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  17. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts.map +1 -1
  18. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +16 -8
  19. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
  20. package/dist-lib/components/Storage/AddStorage/AddStorage.module.scss.js +42 -26
  21. package/dist-lib/components/Storage/AddStorage/AddStorage.module.scss.js.map +1 -1
  22. package/dist-lib/components/Storage/StorageAuthSettings/StorageAuthSettings.d.ts.map +1 -1
  23. package/dist-lib/components/Storage/StorageAuthSettings/StorageAuthSettings.js +119 -53
  24. package/dist-lib/components/Storage/StorageAuthSettings/StorageAuthSettings.js.map +1 -1
  25. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  26. package/dist-lib/components/common/Icon/Icon.js +15 -1
  27. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  28. package/dist-lib/components/index.d.ts +1 -0
  29. package/dist-lib/components/index.d.ts.map +1 -1
  30. package/dist-lib/components.js +86 -84
  31. package/dist-lib/components.js.map +1 -1
  32. package/dist-lib/providers/s3compatible.png +0 -0
  33. package/dist-lib/services/plans.d.ts +13 -1
  34. package/dist-lib/services/plans.d.ts.map +1 -1
  35. package/dist-lib/services/plans.js +88 -61
  36. package/dist-lib/services/plans.js.map +1 -1
  37. package/dist-lib/services/settings.d.ts.map +1 -1
  38. package/dist-lib/services/settings.js +25 -24
  39. package/dist-lib/services/settings.js.map +1 -1
  40. package/dist-lib/services/storage.d.ts +10 -0
  41. package/dist-lib/services/storage.d.ts.map +1 -1
  42. package/dist-lib/services/storage.js +55 -20
  43. package/dist-lib/services/storage.js.map +1 -1
  44. package/dist-lib/services.js +106 -101
  45. package/dist-lib/styles/core-frontend.css +1 -1
  46. package/dist-lib/utils/constants.d.ts.map +1 -1
  47. package/dist-lib/utils/constants.js +28 -5
  48. package/dist-lib/utils/constants.js.map +1 -1
  49. package/dist-lib/utils/helpers.d.ts +1 -0
  50. package/dist-lib/utils/helpers.d.ts.map +1 -1
  51. package/dist-lib/utils/helpers.js +17 -10
  52. package/dist-lib/utils/helpers.js.map +1 -1
  53. package/dist-lib/utils.js +28 -27
  54. package/package.json +1 -1
  55. package/src/@types/plans.ts +11 -20
  56. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +4 -4
  57. package/src/components/Plan/PlanSettings/PlanNotificationSettings.tsx +179 -47
  58. package/src/components/Plan/PlanSettings/PlanNotificationSettingsTester.tsx +85 -0
  59. package/src/components/Plan/PlanSettings/PlanPruneSettings.tsx +2 -2
  60. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +71 -0
  61. package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +6 -1
  62. package/src/components/Storage/AddStorage/AddStorage.module.scss +74 -0
  63. package/src/components/Storage/StorageAuthSettings/StorageAuthSettings.tsx +136 -3
  64. package/src/components/common/Icon/Icon.tsx +16 -0
  65. package/src/components/index.ts +1 -0
  66. package/src/services/plans.ts +38 -1
  67. package/src/services/settings.ts +2 -2
  68. package/src/services/storage.ts +49 -0
  69. package/src/utils/constants.ts +23 -0
  70. package/src/utils/helpers.ts +9 -0
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sources":["../../src/services/settings.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { experimental_createQueryPersister } from '@tanstack/react-query-persist-client';\r\nimport { API_URL } from '../utils/constants';\r\nimport { useNavigate } from 'react-router';\r\n\r\n// ============== Settings API ==============\r\n\r\n// Get Settings\r\nexport async function getSettings() {\r\n const url = new URL(`${API_URL}/settings`);\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 useGetSettings() {\r\n return useQuery({\r\n queryKey: ['settings'],\r\n queryFn: () => getSettings(),\r\n refetchOnMount: true,\r\n retry: false,\r\n staleTime: 0,\r\n });\r\n}\r\n\r\nexport async function updateSettings(updatePayload: { id: string; settings: Record<string, string | boolean | number> }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/${updatePayload.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(updatePayload),\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 useUpdateSettings() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateSettings,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Settings Updated! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['settings'] });\r\n },\r\n });\r\n}\r\n\r\n// Get App Logs\r\nexport async function getAppLogs(settingsID: string) {\r\n const url = new URL(`${API_URL}/settings/${settingsID}/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 throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetAppLogs(settingsID: string) {\r\n return useQuery({\r\n queryKey: ['appLogs', settingsID],\r\n queryFn: () => getAppLogs(settingsID),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Download Plan Logs\r\nexport async function downloadAppLogs(settingsID: string) {\r\n const res = await fetch(`${API_URL}/settings/${settingsID}/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] || `app.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 useGetDownloadAppLogs() {\r\n return useMutation({\r\n mutationFn: downloadAppLogs,\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\nexport async function validateIntegration(updatePayload: {\r\n settingsID: number;\r\n type: string;\r\n settings: Record<string, string | boolean | number>;\r\n test: Record<string, string | boolean | number>;\r\n}) {\r\n console.log('updatePayload :', updatePayload);\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/integration/validate`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(updatePayload),\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 useValidateIntegration() {\r\n return useMutation({\r\n mutationFn: validateIntegration,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Notification Bubble.\r\n console.log('# Settings Updated! :', res);\r\n },\r\n });\r\n}\r\n\r\n// ============== Setup API ==============\r\n\r\nexport interface SetupStatus {\r\n setupPending: boolean;\r\n isBinary: boolean;\r\n requiresKeyringSetup: boolean;\r\n platform: string;\r\n}\r\n\r\nexport interface SetupCredentials {\r\n encryptionKey: string;\r\n userName: string;\r\n userPassword: string;\r\n}\r\n\r\n// Fetch setup status\r\nexport async function getSetupStatus(): Promise<{ success: boolean; data: SetupStatus }> {\r\n const res = await fetch(`${API_URL}/setup/status`, { method: 'GET' });\r\n if (!res.ok) {\r\n throw new Error('Failed to get setup status');\r\n }\r\n return res.json();\r\n}\r\n\r\nexport function useSetupStatus() {\r\n return useQuery({\r\n queryKey: ['setupStatus'],\r\n queryFn: getSetupStatus,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Complete setup\r\nexport async function completeSetup(credentials: SetupCredentials): Promise<{ success: boolean; message?: string; error?: string }> {\r\n const res = await fetch(`${API_URL}/setup/complete`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(credentials),\r\n });\r\n return res.json();\r\n}\r\n\r\nexport function useCompleteSetup() {\r\n return useMutation({\r\n mutationFn: completeSetup,\r\n });\r\n}\r\n\r\n// Two-Factor Authentication (2FA) Setup and Verification\r\n\r\nexport async function setupTwoFactorAuth(id: number) {\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/${id}/2fa/setup`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\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 const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useSetupTwoFactorAuth() {\r\n return useMutation({\r\n mutationFn: setupTwoFactorAuth,\r\n onSuccess: (res) => {\r\n console.log('# 2FA setup data fetched successfully! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# 2FA setup data fetch failed! :', res);\r\n },\r\n });\r\n}\r\nexport async function verifyTwoFactorAuth({ code, id }: { code: string; id: number }) {\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/${id}/2fa/finalize`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify({ code }),\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 const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useVerifyTwoFactorAuth() {\r\n return useMutation({\r\n mutationFn: verifyTwoFactorAuth,\r\n onSuccess: (res) => {\r\n console.log('# 2FA verification successful! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# 2FA verification failed! :', res);\r\n },\r\n });\r\n}\r\n\r\nexport async function verifyTwoFactorOTP({ code }: { code: string }) {\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/user/verify-otp`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify({ code }),\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 const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useVerifyTwoFactorOTP() {\r\n const navigate = useNavigate();\r\n return useMutation({\r\n mutationFn: verifyTwoFactorOTP,\r\n onSuccess: (res) => {\r\n console.log('# 2FA verification successful! :', res);\r\n navigate('/');\r\n },\r\n onError: (res) => {\r\n console.log('# 2FA verification failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// check latest version\r\nexport async function checkLatestVersion() {\r\n const res = await fetch(`${API_URL}/settings/version/latest`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n const data = await res.json();\r\n return data;\r\n}\r\n\r\nconst SIX_HOURS = 1000 * 60 * 60 * 6;\r\n\r\nconst { persisterFn: latestVersionPersister } = experimental_createQueryPersister({\r\n storage: window.localStorage,\r\n maxAge: SIX_HOURS,\r\n});\r\n\r\nexport function useCheckLatestVersion() {\r\n return useQuery({\r\n queryKey: ['latestVersion'],\r\n queryFn: () => checkLatestVersion(),\r\n persister: latestVersionPersister,\r\n retry: false,\r\n staleTime: SIX_HOURS,\r\n gcTime: SIX_HOURS,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false,\r\n refetchOnMount: false,\r\n });\r\n}\r\n"],"names":["getSettings","url","API_URL","data","useGetSettings","useQuery","updateSettings","updatePayload","header","useUpdateSettings","queryClient","useQueryClient","useMutation","res","getAppLogs","settingsID","useGetAppLogs","downloadAppLogs","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetDownloadAppLogs","validateIntegration","useValidateIntegration","getSetupStatus","useSetupStatus","completeSetup","credentials","useCompleteSetup","setupTwoFactorAuth","id","headers","useSetupTwoFactorAuth","verifyTwoFactorAuth","code","useVerifyTwoFactorAuth","verifyTwoFactorOTP","useVerifyTwoFactorOTP","navigate","useNavigate","checkLatestVersion","SIX_HOURS","latestVersionPersister","experimental_createQueryPersister","useCheckLatestVersion"],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sources":["../../src/services/settings.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { experimental_createQueryPersister } from '@tanstack/react-query-persist-client';\r\nimport { API_URL } from '../utils/constants';\r\nimport { useNavigate } from 'react-router';\r\n\r\n// ============== Settings API ==============\r\n\r\n// Get Settings\r\nexport async function getSettings() {\r\n const url = new URL(`${API_URL}/settings`);\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 useGetSettings() {\r\n return useQuery({\r\n queryKey: ['settings'],\r\n queryFn: () => getSettings(),\r\n refetchOnMount: true,\r\n retry: false,\r\n staleTime: 0,\r\n });\r\n}\r\n\r\nexport async function updateSettings(updatePayload: { id: string; settings: Record<string, string | boolean | number> }) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/${updatePayload.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(updatePayload),\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 useUpdateSettings() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateSettings,\r\n onSuccess: (res) => {\r\n console.log('# Settings Updated! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['settings'] });\r\n },\r\n });\r\n}\r\n\r\n// Get App Logs\r\nexport async function getAppLogs(settingsID: string) {\r\n const url = new URL(`${API_URL}/settings/${settingsID}/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 throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetAppLogs(settingsID: string) {\r\n return useQuery({\r\n queryKey: ['appLogs', settingsID],\r\n queryFn: () => getAppLogs(settingsID),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Download Plan Logs\r\nexport async function downloadAppLogs(settingsID: string) {\r\n const res = await fetch(`${API_URL}/settings/${settingsID}/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] || `app.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 useGetDownloadAppLogs() {\r\n return useMutation({\r\n mutationFn: downloadAppLogs,\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\nexport async function validateIntegration(updatePayload: {\r\n settingsID: number;\r\n type: string;\r\n settings: Record<string, string | boolean | number>;\r\n test: Record<string, string | boolean | number>;\r\n}) {\r\n console.log('updatePayload :', updatePayload);\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/integration/validate`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(updatePayload),\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 useValidateIntegration() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: validateIntegration,\r\n onSuccess: (res) => {\r\n queryClient.invalidateQueries({ queryKey: ['settings'] });\r\n console.log('# Settings Updated! :', res);\r\n },\r\n });\r\n}\r\n\r\n// ============== Setup API ==============\r\n\r\nexport interface SetupStatus {\r\n setupPending: boolean;\r\n isBinary: boolean;\r\n requiresKeyringSetup: boolean;\r\n platform: string;\r\n}\r\n\r\nexport interface SetupCredentials {\r\n encryptionKey: string;\r\n userName: string;\r\n userPassword: string;\r\n}\r\n\r\n// Fetch setup status\r\nexport async function getSetupStatus(): Promise<{ success: boolean; data: SetupStatus }> {\r\n const res = await fetch(`${API_URL}/setup/status`, { method: 'GET' });\r\n if (!res.ok) {\r\n throw new Error('Failed to get setup status');\r\n }\r\n return res.json();\r\n}\r\n\r\nexport function useSetupStatus() {\r\n return useQuery({\r\n queryKey: ['setupStatus'],\r\n queryFn: getSetupStatus,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Complete setup\r\nexport async function completeSetup(credentials: SetupCredentials): Promise<{ success: boolean; message?: string; error?: string }> {\r\n const res = await fetch(`${API_URL}/setup/complete`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(credentials),\r\n });\r\n return res.json();\r\n}\r\n\r\nexport function useCompleteSetup() {\r\n return useMutation({\r\n mutationFn: completeSetup,\r\n });\r\n}\r\n\r\n// Two-Factor Authentication (2FA) Setup and Verification\r\n\r\nexport async function setupTwoFactorAuth(id: number) {\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/${id}/2fa/setup`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\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 const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useSetupTwoFactorAuth() {\r\n return useMutation({\r\n mutationFn: setupTwoFactorAuth,\r\n onSuccess: (res) => {\r\n console.log('# 2FA setup data fetched successfully! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# 2FA setup data fetch failed! :', res);\r\n },\r\n });\r\n}\r\nexport async function verifyTwoFactorAuth({ code, id }: { code: string; id: number }) {\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/settings/${id}/2fa/finalize`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify({ code }),\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 const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useVerifyTwoFactorAuth() {\r\n return useMutation({\r\n mutationFn: verifyTwoFactorAuth,\r\n onSuccess: (res) => {\r\n console.log('# 2FA verification successful! :', res);\r\n },\r\n onError: (res) => {\r\n console.log('# 2FA verification failed! :', res);\r\n },\r\n });\r\n}\r\n\r\nexport async function verifyTwoFactorOTP({ code }: { code: string }) {\r\n const headers = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/user/verify-otp`, {\r\n method: 'POST',\r\n headers,\r\n credentials: 'include',\r\n body: JSON.stringify({ code }),\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 const data = await res.json();\r\n return data;\r\n}\r\n\r\nexport function useVerifyTwoFactorOTP() {\r\n const navigate = useNavigate();\r\n return useMutation({\r\n mutationFn: verifyTwoFactorOTP,\r\n onSuccess: (res) => {\r\n console.log('# 2FA verification successful! :', res);\r\n navigate('/');\r\n },\r\n onError: (res) => {\r\n console.log('# 2FA verification failed! :', res);\r\n },\r\n });\r\n}\r\n\r\n// check latest version\r\nexport async function checkLatestVersion() {\r\n const res = await fetch(`${API_URL}/settings/version/latest`, {\r\n method: 'GET',\r\n credentials: 'include',\r\n });\r\n if (!res.ok) {\r\n const data = await res.json();\r\n throw new Error(data.error);\r\n }\r\n const data = await res.json();\r\n return data;\r\n}\r\n\r\nconst SIX_HOURS = 1000 * 60 * 60 * 6;\r\n\r\nconst { persisterFn: latestVersionPersister } = experimental_createQueryPersister({\r\n storage: window.localStorage,\r\n maxAge: SIX_HOURS,\r\n});\r\n\r\nexport function useCheckLatestVersion() {\r\n return useQuery({\r\n queryKey: ['latestVersion'],\r\n queryFn: () => checkLatestVersion(),\r\n persister: latestVersionPersister,\r\n retry: false,\r\n staleTime: SIX_HOURS,\r\n gcTime: SIX_HOURS,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false,\r\n refetchOnMount: false,\r\n });\r\n}\r\n"],"names":["getSettings","url","API_URL","data","useGetSettings","useQuery","updateSettings","updatePayload","header","useUpdateSettings","queryClient","useQueryClient","useMutation","res","getAppLogs","settingsID","useGetAppLogs","downloadAppLogs","filename","_a","reader","_b","stream","controller","done","value","blob","link","useGetDownloadAppLogs","validateIntegration","useValidateIntegration","getSetupStatus","useSetupStatus","completeSetup","credentials","useCompleteSetup","setupTwoFactorAuth","id","headers","useSetupTwoFactorAuth","verifyTwoFactorAuth","code","useVerifyTwoFactorAuth","verifyTwoFactorOTP","useVerifyTwoFactorOTP","navigate","useNavigate","checkLatestVersion","SIX_HOURS","latestVersionPersister","experimental_createQueryPersister","useCheckLatestVersion"],"mappings":"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"}
@@ -29,5 +29,15 @@ export declare function deleteStorage(id: string): Promise<any>;
29
29
  export declare function useDeleteStorage(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
30
30
  export declare function verifyStorage(id: string): Promise<any>;
31
31
  export declare function useVerifyStorage(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
32
+ export declare function startStorageAuthorize(type: string): Promise<{
33
+ sessionId: string;
34
+ }>;
35
+ export declare function getStorageAuthorizeStatus(sessionId: string): Promise<{
36
+ status: 'pending' | 'success' | 'error';
37
+ token?: string;
38
+ error?: string;
39
+ authUrl?: string;
40
+ }>;
41
+ export declare function cancelStorageAuthorize(sessionId: string): Promise<void>;
32
42
  export {};
33
43
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"AAGA,UAAU,iBAAiB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AACD,UAAU,oBAAoB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAEH,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACJ;AAGD,wBAAsB,oBAAoB,iBAYzC;AAED,wBAAgB,uBAAuB,+DAOtC;AAGD,wBAAsB,cAAc,iBAYnC;AAED,wBAAgB,cAAc,+DAO7B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,8DAOvC;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,iBAAiB,gBAa7D;AAED,wBAAgB,aAAa,8FAS5B;AAGD,wBAAsB,aAAa,CAAC,cAAc,EAAE,oBAAoB,gBAavE;AAED,wBAAgB,gBAAgB,iGAU/B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAU/B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAQ/B"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"AAGA,UAAU,iBAAiB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AACD,UAAU,oBAAoB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAEH,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACJ;AAGD,wBAAsB,oBAAoB,iBAYzC;AAED,wBAAgB,uBAAuB,+DAOtC;AAGD,wBAAsB,cAAc,iBAYnC;AAED,wBAAgB,cAAc,+DAO7B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,8DAOvC;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,iBAAiB,gBAa7D;AAED,wBAAgB,aAAa,8FAS5B;AAGD,wBAAsB,aAAa,CAAC,cAAc,EAAE,oBAAoB,gBAavE;AAED,wBAAgB,gBAAgB,iGAU/B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAU/B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAQ/B;AAGD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAaxF;AAED,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACzE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAYD;AAED,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7E"}
@@ -1,7 +1,7 @@
1
- import { useQuery as a, useQueryClient as c, useMutation as s } from "@tanstack/react-query";
2
- import { API_URL as o } from "../utils/constants.js";
1
+ import { useQuery as a, useQueryClient as c, useMutation as o } from "@tanstack/react-query";
2
+ import { API_URL as s } from "../utils/constants.js";
3
3
  async function i() {
4
- const e = new URL(`${o}/storages/available`), n = await (await fetch(e.toString(), {
4
+ const e = new URL(`${s}/storages/available`), n = await (await fetch(e.toString(), {
5
5
  method: "GET",
6
6
  credentials: "include"
7
7
  })).json();
@@ -18,7 +18,7 @@ function p() {
18
18
  });
19
19
  }
20
20
  async function u() {
21
- const e = new URL(`${o}/storages`), n = await (await fetch(e.toString(), {
21
+ const e = new URL(`${s}/storages`), n = await (await fetch(e.toString(), {
22
22
  method: "GET",
23
23
  credentials: "include"
24
24
  })).json();
@@ -35,7 +35,7 @@ function S() {
35
35
  });
36
36
  }
37
37
  async function d(e) {
38
- const r = new URL(`${o}/storages/${e}`), t = await (await fetch(r.toString(), {
38
+ const r = new URL(`${s}/storages/${e}`), t = await (await fetch(r.toString(), {
39
39
  method: "GET",
40
40
  credentials: "include"
41
41
  })).json();
@@ -52,7 +52,7 @@ function j(e) {
52
52
  });
53
53
  }
54
54
  async function l(e) {
55
- const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${o}/storages`, {
55
+ const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${s}/storages`, {
56
56
  method: "POST",
57
57
  credentials: "include",
58
58
  headers: r,
@@ -64,7 +64,7 @@ async function l(e) {
64
64
  }
65
65
  function m() {
66
66
  const e = c();
67
- return s({
67
+ return o({
68
68
  mutationFn: l,
69
69
  onSuccess: (r) => {
70
70
  console.log("# Storage Added! :", r), e.invalidateQueries({ queryKey: ["storages"] });
@@ -72,7 +72,7 @@ function m() {
72
72
  });
73
73
  }
74
74
  async function f(e) {
75
- const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${o}/storages/${e.id}`, {
75
+ const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${s}/storages/${e.id}`, {
76
76
  method: "PUT",
77
77
  credentials: "include",
78
78
  headers: r,
@@ -84,7 +84,7 @@ async function f(e) {
84
84
  }
85
85
  function E() {
86
86
  const e = c();
87
- return s({
87
+ return o({
88
88
  mutationFn: f,
89
89
  onSuccess: (r) => {
90
90
  console.log("# Storage Updated! :", r), e.invalidateQueries({ queryKey: ["storages"] });
@@ -92,7 +92,7 @@ function E() {
92
92
  });
93
93
  }
94
94
  async function g(e) {
95
- const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${o}/storages/${e}`, {
95
+ const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${s}/storages/${e}`, {
96
96
  method: "DELETE",
97
97
  credentials: "include",
98
98
  headers: r
@@ -101,17 +101,17 @@ async function g(e) {
101
101
  throw new Error(t.error);
102
102
  return t;
103
103
  }
104
- function q() {
104
+ function T() {
105
105
  const e = c();
106
- return s({
106
+ return o({
107
107
  mutationFn: g,
108
108
  onSuccess: (r) => {
109
109
  console.log("# Storage Updated! :", r), e.invalidateQueries({ queryKey: ["storages"] });
110
110
  }
111
111
  });
112
112
  }
113
- async function y(e) {
114
- const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${o}/storages/verify/${e}`, {
113
+ async function h(e) {
114
+ const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${s}/storages/verify/${e}`, {
115
115
  method: "POST",
116
116
  credentials: "include",
117
117
  headers: r
@@ -120,28 +120,63 @@ async function y(e) {
120
120
  throw new Error(t.error);
121
121
  return t;
122
122
  }
123
- function T() {
124
- return s({
125
- mutationFn: y,
123
+ function A() {
124
+ return o({
125
+ mutationFn: h,
126
126
  onSuccess: (e) => {
127
127
  console.log("# Storage Verfied! :", e);
128
128
  }
129
129
  });
130
130
  }
131
+ async function $(e) {
132
+ const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${s}/storages/authorize`, {
133
+ method: "POST",
134
+ credentials: "include",
135
+ headers: r,
136
+ body: JSON.stringify({ type: e })
137
+ })).json();
138
+ if (!t.success)
139
+ throw new Error(t.error);
140
+ return t.result;
141
+ }
142
+ async function q(e) {
143
+ const r = new URL(`${s}/storages/authorize/status`);
144
+ r.searchParams.set("sessionId", e);
145
+ const t = await (await fetch(r.toString(), {
146
+ method: "GET",
147
+ credentials: "include"
148
+ })).json();
149
+ if (!t.success)
150
+ throw new Error(t.error);
151
+ return t.result;
152
+ }
153
+ async function O(e) {
154
+ const r = new Headers({ "Content-Type": "application/json", Accept: "application/json" }), t = await (await fetch(`${s}/storages/authorize/cancel`, {
155
+ method: "POST",
156
+ credentials: "include",
157
+ headers: r,
158
+ body: JSON.stringify({ sessionId: e })
159
+ })).json();
160
+ if (!t.success)
161
+ throw new Error(t.error);
162
+ }
131
163
  export {
132
164
  l as addStorage,
165
+ O as cancelStorageAuthorize,
133
166
  g as deleteStorage,
134
167
  u as getAllStorages,
135
168
  i as getAvailableStorages,
136
169
  d as getStorage,
170
+ q as getStorageAuthorizeStatus,
171
+ $ as startStorageAuthorize,
137
172
  f as updateStorage,
138
173
  m as useAddStorage,
139
- q as useDeleteStorage,
174
+ T as useDeleteStorage,
140
175
  p as useGetAvailableStorages,
141
176
  j as useGetStorage,
142
177
  S as useGetStorages,
143
178
  E as useUpdateStorage,
144
- T as useVerifyStorage,
145
- y as verifyStorage
179
+ A as useVerifyStorage,
180
+ h as verifyStorage
146
181
  };
147
182
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sources":["../../src/services/storage.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { API_URL } from '../utils/constants';\r\n\r\ninterface NewStoragePayload {\r\n name: string;\r\n type: string;\r\n authType: string;\r\n credentials: Record<string, string | number | boolean>;\r\n settings: Record<string, string | number | boolean>;\r\n tags?: string[];\r\n}\r\ninterface UpdateStoragePayload {\r\n id: string;\r\n data: {\r\n // name: string;\r\n type: string;\r\n credentials: Record<string, string | number | boolean>;\r\n settings: Record<string, string | number | boolean>;\r\n tags?: string[];\r\n };\r\n}\r\n\r\n// Get All Storages\r\nexport async function getAvailableStorages() {\r\n const url = new URL(`${API_URL}/storages/available`);\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 useGetAvailableStorages() {\r\n return useQuery({\r\n queryKey: ['storageSettings'],\r\n queryFn: () => getAvailableStorages(),\r\n refetchOnMount: false,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get All Storages\r\nexport async function getAllStorages() {\r\n const url = new URL(`${API_URL}/storages`);\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 useGetStorages() {\r\n return useQuery({\r\n queryKey: ['storages'],\r\n queryFn: () => getAllStorages(),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get Single Storage\r\nexport async function getStorage(id: string) {\r\n const url = new URL(`${API_URL}/storages/${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 throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetStorage(id: string) {\r\n return useQuery({\r\n queryKey: ['storage', id],\r\n queryFn: () => getStorage(id),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Add New Storage\r\nexport async function addStorage(newStorage: NewStoragePayload) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(newStorage),\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 useAddStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: addStorage,\r\n onSuccess: (res) => {\r\n console.log('# Storage Added! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['storages'] });\r\n },\r\n });\r\n}\r\n\r\n// Update Storage\r\nexport async function updateStorage(updatedStorage: UpdateStoragePayload) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/${updatedStorage.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(updatedStorage.data),\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 useUpdateStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateStorage,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Nofitication Bubble.\r\n console.log('# Storage Updated! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['storages'] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Storage\r\nexport async function deleteStorage(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/${id}`, {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeleteStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteStorage,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Nofitication Bubble.\r\n console.log('# Storage Updated! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['storages'] });\r\n },\r\n });\r\n}\r\n\r\n// Verify Storage\r\nexport async function verifyStorage(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/verify/${id}`, {\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 useVerifyStorage() {\r\n return useMutation({\r\n mutationFn: verifyStorage,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Nofitication Bubble.\r\n console.log('# Storage Verfied! :', res);\r\n },\r\n });\r\n}\r\n"],"names":["getAvailableStorages","url","API_URL","data","useGetAvailableStorages","useQuery","getAllStorages","useGetStorages","getStorage","id","useGetStorage","addStorage","newStorage","header","useAddStorage","queryClient","useQueryClient","useMutation","res","updateStorage","updatedStorage","useUpdateStorage","deleteStorage","useDeleteStorage","verifyStorage","useVerifyStorage"],"mappings":";;AAuBA,eAAsBA,IAAuB;AAC1C,QAAMC,IAAM,IAAI,IAAI,GAAGC,CAAO,qBAAqB,GAM7CC,IAAO,OAJD,MAAM,MAAMF,EAAI,YAAY;AAAA,IACrC,QAAQ;AAAA,IACR,aAAa;AAAA,EAAA,CACf,GACsB,KAAA;AACvB,MAAI,CAACE,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASC,IAA0B;AACvC,SAAOC,EAAS;AAAA,IACb,UAAU,CAAC,iBAAiB;AAAA,IAC5B,SAAS,MAAML,EAAA;AAAA,IACf,gBAAgB;AAAA,IAChB,OAAO;AAAA,EAAA,CACT;AACJ;AAGA,eAAsBM,IAAiB;AACpC,QAAML,IAAM,IAAI,IAAI,GAAGC,CAAO,WAAW,GAMnCC,IAAO,OAJD,MAAM,MAAMF,EAAI,YAAY;AAAA,IACrC,QAAQ;AAAA,IACR,aAAa;AAAA,EAAA,CACf,GACsB,KAAA;AACvB,MAAI,CAACE,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASI,IAAiB;AAC9B,SAAOF,EAAS;AAAA,IACb,UAAU,CAAC,UAAU;AAAA,IACrB,SAAS,MAAMC,EAAA;AAAA,IACf,gBAAgB;AAAA,IAChB,OAAO;AAAA,EAAA,CACT;AACJ;AAGA,eAAsBE,EAAWC,GAAY;AAC1C,QAAMR,IAAM,IAAI,IAAI,GAAGC,CAAO,aAAaO,CAAE,EAAE,GAMzCN,IAAO,OAJD,MAAM,MAAMF,EAAI,YAAY;AAAA,IACrC,QAAQ;AAAA,IACR,aAAa;AAAA,EAAA,CACf,GACsB,KAAA;AACvB,MAAI,CAACE,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASO,EAAcD,GAAY;AACvC,SAAOJ,EAAS;AAAA,IACb,UAAU,CAAC,WAAWI,CAAE;AAAA,IACxB,SAAS,MAAMD,EAAWC,CAAE;AAAA,IAC5B,gBAAgB;AAAA,IAChB,OAAO;AAAA,EAAA,CACT;AACJ;AAGA,eAAsBE,EAAWC,GAA+B;AAC7D,QAAMC,IAAS,IAAI,QAAQ,EAAE,gBAAgB,oBAAoB,QAAQ,oBAAoB,GAOvFV,IAAO,OAND,MAAM,MAAM,GAAGD,CAAO,aAAa;AAAA,IAC5C,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAASW;AAAA,IACT,MAAM,KAAK,UAAUD,CAAU;AAAA,EAAA,CACjC,GACsB,KAAA;AACvB,MAAI,CAACT,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASW,IAAgB;AAC7B,QAAMC,IAAcC,EAAA;AACpB,SAAOC,EAAY;AAAA,IAChB,YAAYN;AAAA,IACZ,WAAW,CAACO,MAAQ;AACjB,cAAQ,IAAI,sBAAsBA,CAAG,GACrCH,EAAY,kBAAkB,EAAE,UAAU,CAAC,UAAU,GAAG;AAAA,IAC3D;AAAA,EAAA,CACF;AACJ;AAGA,eAAsBI,EAAcC,GAAsC;AACvE,QAAMP,IAAS,IAAI,QAAQ,EAAE,gBAAgB,oBAAoB,QAAQ,oBAAoB,GAOvFV,IAAO,OAND,MAAM,MAAM,GAAGD,CAAO,aAAakB,EAAe,EAAE,IAAI;AAAA,IACjE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAASP;AAAA,IACT,MAAM,KAAK,UAAUO,EAAe,IAAI;AAAA,EAAA,CAC1C,GACsB,KAAA;AACvB,MAAI,CAACjB,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASkB,IAAmB;AAChC,QAAMN,IAAcC,EAAA;AACpB,SAAOC,EAAY;AAAA,IAChB,YAAYE;AAAA,IACZ,WAAW,CAACD,MAAQ;AAEjB,cAAQ,IAAI,wBAAwBA,CAAG,GACvCH,EAAY,kBAAkB,EAAE,UAAU,CAAC,UAAU,GAAG;AAAA,IAC3D;AAAA,EAAA,CACF;AACJ;AAGA,eAAsBO,EAAcb,GAAY;AAC7C,QAAMI,IAAS,IAAI,QAAQ,EAAE,gBAAgB,oBAAoB,QAAQ,oBAAoB,GAMvFV,IAAO,OALD,MAAM,MAAM,GAAGD,CAAO,aAAaO,CAAE,IAAI;AAAA,IAClD,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAASI;AAAA,EAAA,CACX,GACsB,KAAA;AACvB,MAAI,CAACV,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASoB,IAAmB;AAChC,QAAMR,IAAcC,EAAA;AACpB,SAAOC,EAAY;AAAA,IAChB,YAAYK;AAAA,IACZ,WAAW,CAACJ,MAAQ;AAEjB,cAAQ,IAAI,wBAAwBA,CAAG,GACvCH,EAAY,kBAAkB,EAAE,UAAU,CAAC,UAAU,GAAG;AAAA,IAC3D;AAAA,EAAA,CACF;AACJ;AAGA,eAAsBS,EAAcf,GAAY;AAC7C,QAAMI,IAAS,IAAI,QAAQ,EAAE,gBAAgB,oBAAoB,QAAQ,oBAAoB,GAMvFV,IAAO,OALD,MAAM,MAAM,GAAGD,CAAO,oBAAoBO,CAAE,IAAI;AAAA,IACzD,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAASI;AAAA,EAAA,CACX,GACsB,KAAA;AACvB,MAAI,CAACV,EAAK;AACP,UAAM,IAAI,MAAMA,EAAK,KAAK;AAE7B,SAAOA;AACV;AAEO,SAASsB,IAAmB;AAChC,SAAOR,EAAY;AAAA,IAChB,YAAYO;AAAA,IACZ,WAAW,CAACN,MAAQ;AAEjB,cAAQ,IAAI,wBAAwBA,CAAG;AAAA,IAC1C;AAAA,EAAA,CACF;AACJ;"}
1
+ {"version":3,"file":"storage.js","sources":["../../src/services/storage.ts"],"sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\r\nimport { API_URL } from '../utils/constants';\r\n\r\ninterface NewStoragePayload {\r\n name: string;\r\n type: string;\r\n authType: string;\r\n credentials: Record<string, string | number | boolean>;\r\n settings: Record<string, string | number | boolean>;\r\n tags?: string[];\r\n}\r\ninterface UpdateStoragePayload {\r\n id: string;\r\n data: {\r\n // name: string;\r\n type: string;\r\n credentials: Record<string, string | number | boolean>;\r\n settings: Record<string, string | number | boolean>;\r\n tags?: string[];\r\n };\r\n}\r\n\r\n// Get All Storages\r\nexport async function getAvailableStorages() {\r\n const url = new URL(`${API_URL}/storages/available`);\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 useGetAvailableStorages() {\r\n return useQuery({\r\n queryKey: ['storageSettings'],\r\n queryFn: () => getAvailableStorages(),\r\n refetchOnMount: false,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get All Storages\r\nexport async function getAllStorages() {\r\n const url = new URL(`${API_URL}/storages`);\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 useGetStorages() {\r\n return useQuery({\r\n queryKey: ['storages'],\r\n queryFn: () => getAllStorages(),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Get Single Storage\r\nexport async function getStorage(id: string) {\r\n const url = new URL(`${API_URL}/storages/${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 throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useGetStorage(id: string) {\r\n return useQuery({\r\n queryKey: ['storage', id],\r\n queryFn: () => getStorage(id),\r\n refetchOnMount: true,\r\n retry: false,\r\n });\r\n}\r\n\r\n// Add New Storage\r\nexport async function addStorage(newStorage: NewStoragePayload) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(newStorage),\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 useAddStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: addStorage,\r\n onSuccess: (res) => {\r\n console.log('# Storage Added! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['storages'] });\r\n },\r\n });\r\n}\r\n\r\n// Update Storage\r\nexport async function updateStorage(updatedStorage: UpdateStoragePayload) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/${updatedStorage.id}`, {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify(updatedStorage.data),\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 useUpdateStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateStorage,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Nofitication Bubble.\r\n console.log('# Storage Updated! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['storages'] });\r\n },\r\n });\r\n}\r\n\r\n// Remove Storage\r\nexport async function deleteStorage(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/${id}`, {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers: header,\r\n });\r\n const data = await res.json();\r\n if (!data.success) {\r\n throw new Error(data.error);\r\n }\r\n return data;\r\n}\r\n\r\nexport function useDeleteStorage() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteStorage,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Nofitication Bubble.\r\n console.log('# Storage Updated! :', res);\r\n queryClient.invalidateQueries({ queryKey: ['storages'] });\r\n },\r\n });\r\n}\r\n\r\n// Verify Storage\r\nexport async function verifyStorage(id: string) {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/verify/${id}`, {\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 useVerifyStorage() {\r\n return useMutation({\r\n mutationFn: verifyStorage,\r\n onSuccess: (res) => {\r\n // TODO: Should Display a Nofitication Bubble.\r\n console.log('# Storage Verfied! :', res);\r\n },\r\n });\r\n}\r\n\r\n// ── OAuth Authorization ─────────────────────────────────────────────\r\nexport async function startStorageAuthorize(type: string): Promise<{ sessionId: string }> {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/authorize`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ type }),\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.result;\r\n}\r\n\r\nexport async function getStorageAuthorizeStatus(sessionId: string): Promise<{\r\n status: 'pending' | 'success' | 'error';\r\n token?: string;\r\n error?: string;\r\n authUrl?: string;\r\n}> {\r\n const url = new URL(`${API_URL}/storages/authorize/status`);\r\n url.searchParams.set('sessionId', sessionId);\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.result;\r\n}\r\n\r\nexport async function cancelStorageAuthorize(sessionId: string): Promise<void> {\r\n const header = new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' });\r\n const res = await fetch(`${API_URL}/storages/authorize/cancel`, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: header,\r\n body: JSON.stringify({ sessionId }),\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}\r\n"],"names":["getAvailableStorages","url","API_URL","data","useGetAvailableStorages","useQuery","getAllStorages","useGetStorages","getStorage","id","useGetStorage","addStorage","newStorage","header","useAddStorage","queryClient","useQueryClient","useMutation","res","updateStorage","updatedStorage","useUpdateStorage","deleteStorage","useDeleteStorage","verifyStorage","useVerifyStorage","startStorageAuthorize","type","getStorageAuthorizeStatus","sessionId","cancelStorageAuthorize"],"mappings":"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"}
@@ -1,130 +1,135 @@
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, useCancelBackup as g, useCancelBackupDownload as i, useDeleteBackup as d, useDownloadBackup as S, useGetBackupDownload as P, useGetBackupProgress as k, useGetBackupProgressOnce as D, useGetSnapshotFiles as R, useRetryFailedReplications as G, useUpdateBackup as B } from "./services/backups.js";
2
- import { browseDir as w, getAllDevices as f, getDevice as m, getSystemMetrics as v, updateDependent as h, updateDevice as y, useBrowseDir as L, useGetDevice as F, useGetDevices as U, useGetSystemMetrics as C, useUpdateDependent as T, useUpdateDevice as x } from "./services/devices.js";
3
- import { checkActiveBackupsOrRestore as V, checkPlanIntegrity as I, createPlan as b, deletePlan as M, deleteReplicationStorage as j, downloadPlanLogs as q, getAllPlans as z, getPlanLogs as E, getSinglePlan as H, pausePlan as J, performBackup as K, prunePlan as N, resumePlan as Q, unlockPlan as W, updatePlan as X, useCheckActiveBackupsOrRestore as Y, useCheckPlanIntegrity as Z, useCreatePlan as _, useDeletePlan as $, useDeleteReplicationStorage as ee, useGetDownloadLogs as te, useGetPlan as se, useGetPlanLogs as ae, useGetPlans as oe, usePausePlan as ue, usePerformBackup as re, usePrunePlan as le, useResumePlan as ne, useUnlockPlan as pe, useUpdatePlan as ce } from "./services/plans.js";
4
- import { cancelRestore as ie, deleteRestore as de, getAllRestores as Se, getDryRestoreStats as Pe, getRestoreProgress as ke, getRestoreStats as De, getSingleRestore as Re, restoreBackup as Ge, useCancelRestore as Be, useDeleteRestore as Ae, useGetDryRestoreStats as we, useGetRestore as fe, useGetRestoreProgress as me, useGetRestoreProgressOnce as ve, useGetRestoreStats as he, useGetRestores as ye, useRestoreBackup as Le } from "./services/restores.js";
5
- import { checkLatestVersion as Ue, completeSetup as Ce, downloadAppLogs as Te, getAppLogs as xe, getSettings as Oe, getSetupStatus as Ve, setupTwoFactorAuth as Ie, updateSettings as be, useCheckLatestVersion as Me, useCompleteSetup as je, useGetAppLogs as qe, useGetDownloadAppLogs as ze, useGetSettings as Ee, useSetupStatus as He, useSetupTwoFactorAuth as Je, useUpdateSettings as Ke, useValidateIntegration as Ne, useVerifyTwoFactorAuth as Qe, useVerifyTwoFactorOTP as We, validateIntegration as Xe, verifyTwoFactorAuth as Ye, verifyTwoFactorOTP as Ze } from "./services/settings.js";
6
- import { addStorage as $e, deleteStorage as et, getAllStorages as tt, getAvailableStorages as st, getStorage as at, updateStorage as ot, useAddStorage as ut, useDeleteStorage as rt, useGetAvailableStorages as lt, useGetStorage as nt, useGetStorages as pt, useUpdateStorage as ct, useVerifyStorage as gt, verifyStorage as it } from "./services/storage.js";
7
- import { loginUser as St, logoutUser as Pt, useAuth as kt, useLogin as Dt, useLogout as Rt, validateAuth as Gt } from "./services/users.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 c, updateBackup as g, useCancelBackup as p, useCancelBackupDownload as i, useDeleteBackup as d, useDownloadBackup as S, useGetBackupDownload as P, useGetBackupProgress as k, useGetBackupProgressOnce as D, useGetSnapshotFiles as R, useRetryFailedReplications as G, useUpdateBackup as A } from "./services/backups.js";
2
+ import { browseDir as w, getAllDevices as f, getDevice as h, getSystemMetrics as m, updateDependent as v, updateDevice as y, useBrowseDir as L, useGetDevice as F, useGetDevices as T, useGetSystemMetrics as U, useUpdateDependent as C, useUpdateDevice as x } from "./services/devices.js";
3
+ import { checkActiveBackupsOrRestore as V, checkPlanIntegrity as I, createPlan as b, deletePlan as z, deleteReplicationStorage as M, downloadPlanLogs as N, getAllPlans as q, getPlanLogs as j, getSinglePlan as E, pausePlan as H, performBackup as J, prunePlan as K, resumePlan as Q, sendTestNotificationRequest as W, unlockPlan as X, updatePlan as Y, useCheckActiveBackupsOrRestore as Z, useCheckPlanIntegrity as _, useCreatePlan as $, useDeletePlan as ee, useDeleteReplicationStorage as te, useGetDownloadLogs as se, useGetPlan as ae, useGetPlanLogs as oe, useGetPlans as ue, usePausePlan as re, usePerformBackup as le, usePrunePlan as ne, useResumePlan as ce, useTestNotification as ge, useUnlockPlan as pe, useUpdatePlan as ie } from "./services/plans.js";
4
+ import { cancelRestore as Se, deleteRestore as Pe, getAllRestores as ke, getDryRestoreStats as De, getRestoreProgress as Re, getRestoreStats as Ge, getSingleRestore as Ae, restoreBackup as Be, useCancelRestore as we, useDeleteRestore as fe, useGetDryRestoreStats as he, useGetRestore as me, useGetRestoreProgress as ve, useGetRestoreProgressOnce as ye, useGetRestoreStats as Le, useGetRestores as Fe, useRestoreBackup as Te } from "./services/restores.js";
5
+ import { checkLatestVersion as Ce, completeSetup as xe, downloadAppLogs as Oe, getAppLogs as Ve, getSettings as Ie, getSetupStatus as be, setupTwoFactorAuth as ze, updateSettings as Me, useCheckLatestVersion as Ne, useCompleteSetup as qe, useGetAppLogs as je, useGetDownloadAppLogs as Ee, useGetSettings as He, useSetupStatus as Je, useSetupTwoFactorAuth as Ke, useUpdateSettings as Qe, useValidateIntegration as We, useVerifyTwoFactorAuth as Xe, useVerifyTwoFactorOTP as Ye, validateIntegration as Ze, verifyTwoFactorAuth as _e, verifyTwoFactorOTP as $e } from "./services/settings.js";
6
+ import { addStorage as tt, cancelStorageAuthorize as st, deleteStorage as at, getAllStorages as ot, getAvailableStorages as ut, getStorage as rt, getStorageAuthorizeStatus as lt, startStorageAuthorize as nt, updateStorage as ct, useAddStorage as gt, useDeleteStorage as pt, useGetAvailableStorages as it, useGetStorage as dt, useGetStorages as St, useUpdateStorage as Pt, useVerifyStorage as kt, verifyStorage as Dt } from "./services/storage.js";
7
+ import { loginUser as Gt, logoutUser as At, useAuth as Bt, useLogin as wt, useLogout as ft, validateAuth as ht } from "./services/users.js";
8
8
  export {
9
- $e as addStorage,
9
+ tt as addStorage,
10
10
  w as browseDir,
11
11
  s as cancelBackup,
12
12
  a as cancelBackupDownload,
13
- ie as cancelRestore,
13
+ Se as cancelRestore,
14
+ st as cancelStorageAuthorize,
14
15
  V as checkActiveBackupsOrRestore,
15
- Ue as checkLatestVersion,
16
+ Ce as checkLatestVersion,
16
17
  I as checkPlanIntegrity,
17
- Ce as completeSetup,
18
+ xe as completeSetup,
18
19
  b as createPlan,
19
20
  o as deleteBackup,
20
- M as deletePlan,
21
- j as deleteReplicationStorage,
22
- de as deleteRestore,
23
- et as deleteStorage,
24
- Te as downloadAppLogs,
25
- q as downloadPlanLogs,
21
+ z as deletePlan,
22
+ M as deleteReplicationStorage,
23
+ Pe as deleteRestore,
24
+ at as deleteStorage,
25
+ Oe as downloadAppLogs,
26
+ N as downloadPlanLogs,
26
27
  u as generateBackupDownload,
27
28
  f as getAllDevices,
28
- z as getAllPlans,
29
- Se as getAllRestores,
30
- tt as getAllStorages,
31
- xe as getAppLogs,
32
- st as getAvailableStorages,
29
+ q as getAllPlans,
30
+ ke as getAllRestores,
31
+ ot as getAllStorages,
32
+ Ve as getAppLogs,
33
+ ut as getAvailableStorages,
33
34
  r as getBackupDownload,
34
35
  l as getBackupProgress,
35
- m as getDevice,
36
- Pe as getDryRestoreStats,
37
- E as getPlanLogs,
38
- ke as getRestoreProgress,
39
- De as getRestoreStats,
40
- Oe as getSettings,
41
- Ve as getSetupStatus,
42
- H as getSinglePlan,
43
- Re as getSingleRestore,
36
+ h as getDevice,
37
+ De as getDryRestoreStats,
38
+ j as getPlanLogs,
39
+ Re as getRestoreProgress,
40
+ Ge as getRestoreStats,
41
+ Ie as getSettings,
42
+ be as getSetupStatus,
43
+ E as getSinglePlan,
44
+ Ae as getSingleRestore,
44
45
  n as getSnapshotFiles,
45
- at as getStorage,
46
- v as getSystemMetrics,
47
- St as loginUser,
48
- Pt as logoutUser,
49
- J as pausePlan,
50
- K as performBackup,
51
- N as prunePlan,
52
- Ge as restoreBackup,
46
+ rt as getStorage,
47
+ lt as getStorageAuthorizeStatus,
48
+ m as getSystemMetrics,
49
+ Gt as loginUser,
50
+ At as logoutUser,
51
+ H as pausePlan,
52
+ J as performBackup,
53
+ K as prunePlan,
54
+ Be as restoreBackup,
53
55
  Q as resumePlan,
54
- p as retryFailedReplications,
55
- Ie as setupTwoFactorAuth,
56
- W as unlockPlan,
57
- c as updateBackup,
58
- h as updateDependent,
56
+ c as retryFailedReplications,
57
+ W as sendTestNotificationRequest,
58
+ ze as setupTwoFactorAuth,
59
+ nt as startStorageAuthorize,
60
+ X as unlockPlan,
61
+ g as updateBackup,
62
+ v as updateDependent,
59
63
  y as updateDevice,
60
- X as updatePlan,
61
- be as updateSettings,
62
- ot as updateStorage,
63
- ut as useAddStorage,
64
- kt as useAuth,
64
+ Y as updatePlan,
65
+ Me as updateSettings,
66
+ ct as updateStorage,
67
+ gt as useAddStorage,
68
+ Bt as useAuth,
65
69
  L as useBrowseDir,
66
- g as useCancelBackup,
70
+ p as useCancelBackup,
67
71
  i as useCancelBackupDownload,
68
- Be as useCancelRestore,
69
- Y as useCheckActiveBackupsOrRestore,
70
- Me as useCheckLatestVersion,
71
- Z as useCheckPlanIntegrity,
72
- je as useCompleteSetup,
73
- _ as useCreatePlan,
72
+ we as useCancelRestore,
73
+ Z as useCheckActiveBackupsOrRestore,
74
+ Ne as useCheckLatestVersion,
75
+ _ as useCheckPlanIntegrity,
76
+ qe as useCompleteSetup,
77
+ $ as useCreatePlan,
74
78
  d as useDeleteBackup,
75
- $ as useDeletePlan,
76
- ee as useDeleteReplicationStorage,
77
- Ae as useDeleteRestore,
78
- rt as useDeleteStorage,
79
+ ee as useDeletePlan,
80
+ te as useDeleteReplicationStorage,
81
+ fe as useDeleteRestore,
82
+ pt as useDeleteStorage,
79
83
  S as useDownloadBackup,
80
- qe as useGetAppLogs,
81
- lt as useGetAvailableStorages,
84
+ je as useGetAppLogs,
85
+ it as useGetAvailableStorages,
82
86
  P as useGetBackupDownload,
83
87
  k as useGetBackupProgress,
84
88
  D as useGetBackupProgressOnce,
85
89
  F as useGetDevice,
86
- U as useGetDevices,
87
- ze as useGetDownloadAppLogs,
88
- te as useGetDownloadLogs,
89
- we as useGetDryRestoreStats,
90
- se as useGetPlan,
91
- ae as useGetPlanLogs,
92
- oe as useGetPlans,
93
- fe as useGetRestore,
94
- me as useGetRestoreProgress,
95
- ve as useGetRestoreProgressOnce,
96
- he as useGetRestoreStats,
97
- ye as useGetRestores,
98
- Ee as useGetSettings,
90
+ T as useGetDevices,
91
+ Ee as useGetDownloadAppLogs,
92
+ se as useGetDownloadLogs,
93
+ he as useGetDryRestoreStats,
94
+ ae as useGetPlan,
95
+ oe as useGetPlanLogs,
96
+ ue as useGetPlans,
97
+ me as useGetRestore,
98
+ ve as useGetRestoreProgress,
99
+ ye as useGetRestoreProgressOnce,
100
+ Le as useGetRestoreStats,
101
+ Fe as useGetRestores,
102
+ He as useGetSettings,
99
103
  R as useGetSnapshotFiles,
100
- nt as useGetStorage,
101
- pt as useGetStorages,
102
- C as useGetSystemMetrics,
103
- Dt as useLogin,
104
- Rt as useLogout,
105
- ue as usePausePlan,
106
- re as usePerformBackup,
107
- le as usePrunePlan,
108
- Le as useRestoreBackup,
109
- ne as useResumePlan,
104
+ dt as useGetStorage,
105
+ St as useGetStorages,
106
+ U as useGetSystemMetrics,
107
+ wt as useLogin,
108
+ ft as useLogout,
109
+ re as usePausePlan,
110
+ le as usePerformBackup,
111
+ ne as usePrunePlan,
112
+ Te as useRestoreBackup,
113
+ ce as useResumePlan,
110
114
  G as useRetryFailedReplications,
111
- He as useSetupStatus,
112
- Je as useSetupTwoFactorAuth,
115
+ Je as useSetupStatus,
116
+ Ke as useSetupTwoFactorAuth,
117
+ ge as useTestNotification,
113
118
  pe as useUnlockPlan,
114
- B as useUpdateBackup,
115
- T as useUpdateDependent,
119
+ A as useUpdateBackup,
120
+ C as useUpdateDependent,
116
121
  x as useUpdateDevice,
117
- ce as useUpdatePlan,
118
- Ke as useUpdateSettings,
119
- ct as useUpdateStorage,
120
- Ne as useValidateIntegration,
121
- gt as useVerifyStorage,
122
- Qe as useVerifyTwoFactorAuth,
123
- We as useVerifyTwoFactorOTP,
124
- Gt as validateAuth,
125
- Xe as validateIntegration,
126
- it as verifyStorage,
127
- Ye as verifyTwoFactorAuth,
128
- Ze as verifyTwoFactorOTP
122
+ ie as useUpdatePlan,
123
+ Qe as useUpdateSettings,
124
+ Pt as useUpdateStorage,
125
+ We as useValidateIntegration,
126
+ kt as useVerifyStorage,
127
+ Xe as useVerifyTwoFactorAuth,
128
+ Ye as useVerifyTwoFactorOTP,
129
+ ht as validateAuth,
130
+ Ze as validateIntegration,
131
+ Dt as verifyStorage,
132
+ _e as verifyTwoFactorAuth,
133
+ $e as verifyTwoFactorOTP
129
134
  };
130
135
  //# sourceMappingURL=services.js.map