@plutonhq/core-frontend 0.1.22 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist-lib/@types/plans.d.ts +11 -20
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +49 -47
  4. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  5. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts +7 -4
  6. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts.map +1 -1
  7. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js +177 -52
  8. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js.map +1 -1
  9. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts +9 -0
  10. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts.map +1 -0
  11. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js +62 -0
  12. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js.map +1 -0
  13. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js +2 -2
  14. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js.map +1 -1
  15. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +56 -40
  16. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  17. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts.map +1 -1
  18. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +16 -8
  19. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
  20. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  21. package/dist-lib/components/common/Icon/Icon.js +15 -1
  22. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  23. package/dist-lib/components/index.d.ts +1 -0
  24. package/dist-lib/components/index.d.ts.map +1 -1
  25. package/dist-lib/components.js +86 -84
  26. package/dist-lib/components.js.map +1 -1
  27. package/dist-lib/providers/s3compatible.png +0 -0
  28. package/dist-lib/services/plans.d.ts +13 -1
  29. package/dist-lib/services/plans.d.ts.map +1 -1
  30. package/dist-lib/services/plans.js +88 -61
  31. package/dist-lib/services/plans.js.map +1 -1
  32. package/dist-lib/services/settings.d.ts.map +1 -1
  33. package/dist-lib/services/settings.js +25 -24
  34. package/dist-lib/services/settings.js.map +1 -1
  35. package/dist-lib/services.js +102 -100
  36. package/dist-lib/styles/core-frontend.css +1 -1
  37. package/dist-lib/utils/constants.d.ts.map +1 -1
  38. package/dist-lib/utils/constants.js +28 -5
  39. package/dist-lib/utils/constants.js.map +1 -1
  40. package/dist-lib/utils/helpers.d.ts +1 -0
  41. package/dist-lib/utils/helpers.d.ts.map +1 -1
  42. package/dist-lib/utils/helpers.js +17 -10
  43. package/dist-lib/utils/helpers.js.map +1 -1
  44. package/dist-lib/utils.js +28 -27
  45. package/package.json +1 -1
  46. package/src/@types/plans.ts +11 -20
  47. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +4 -4
  48. package/src/components/Plan/PlanSettings/PlanNotificationSettings.tsx +179 -47
  49. package/src/components/Plan/PlanSettings/PlanNotificationSettingsTester.tsx +85 -0
  50. package/src/components/Plan/PlanSettings/PlanPruneSettings.tsx +2 -2
  51. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +71 -0
  52. package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +6 -1
  53. package/src/components/common/Icon/Icon.tsx +16 -0
  54. package/src/components/index.ts +1 -0
  55. package/src/services/plans.ts +38 -1
  56. package/src/services/settings.ts +2 -2
  57. package/src/utils/constants.ts +23 -0
  58. package/src/utils/helpers.ts +9 -0
@@ -1 +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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"}
@@ -1,133 +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 g, updateBackup as c, useCancelBackup as p, useCancelBackupDownload as i, useDeleteBackup as S, useDownloadBackup as d, 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 h, getDevice as f, getSystemMetrics as m, updateDependent as v, 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 z, deleteReplicationStorage as M, downloadPlanLogs as j, getAllPlans as q, 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 ge, useUpdatePlan as ce } from "./services/plans.js";
4
- import { cancelRestore as ie, deleteRestore as Se, getAllRestores as de, getDryRestoreStats as Pe, getRestoreProgress as ke, getRestoreStats as De, getSingleRestore as Re, restoreBackup as Ge, useCancelRestore as Ae, useDeleteRestore as Be, useGetDryRestoreStats as we, useGetRestore as he, useGetRestoreProgress as fe, useGetRestoreProgressOnce as me, useGetRestoreStats as ve, 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 ze, useCompleteSetup as Me, useGetAppLogs as je, useGetDownloadAppLogs as qe, 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, cancelStorageAuthorize as et, deleteStorage as tt, getAllStorages as st, getAvailableStorages as at, getStorage as ot, getStorageAuthorizeStatus as ut, startStorageAuthorize as rt, updateStorage as lt, useAddStorage as nt, useDeleteStorage as gt, useGetAvailableStorages as ct, useGetStorage as pt, useGetStorages as it, useUpdateStorage as St, useVerifyStorage as dt, verifyStorage as Pt } from "./services/storage.js";
7
- import { loginUser as Dt, logoutUser as Rt, useAuth as Gt, useLogin as At, useLogout as Bt, validateAuth as wt } 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,
14
- et as cancelStorageAuthorize,
13
+ Se as cancelRestore,
14
+ st as cancelStorageAuthorize,
15
15
  V as checkActiveBackupsOrRestore,
16
- Ue as checkLatestVersion,
16
+ Ce as checkLatestVersion,
17
17
  I as checkPlanIntegrity,
18
- Ce as completeSetup,
18
+ xe as completeSetup,
19
19
  b as createPlan,
20
20
  o as deleteBackup,
21
21
  z as deletePlan,
22
22
  M as deleteReplicationStorage,
23
- Se as deleteRestore,
24
- tt as deleteStorage,
25
- Te as downloadAppLogs,
26
- j as downloadPlanLogs,
23
+ Pe as deleteRestore,
24
+ at as deleteStorage,
25
+ Oe as downloadAppLogs,
26
+ N as downloadPlanLogs,
27
27
  u as generateBackupDownload,
28
- h as getAllDevices,
28
+ f as getAllDevices,
29
29
  q as getAllPlans,
30
- de as getAllRestores,
31
- st as getAllStorages,
32
- xe as getAppLogs,
33
- at as getAvailableStorages,
30
+ ke as getAllRestores,
31
+ ot as getAllStorages,
32
+ Ve as getAppLogs,
33
+ ut as getAvailableStorages,
34
34
  r as getBackupDownload,
35
35
  l as getBackupProgress,
36
- f as getDevice,
37
- Pe as getDryRestoreStats,
38
- E as getPlanLogs,
39
- ke as getRestoreProgress,
40
- De as getRestoreStats,
41
- Oe as getSettings,
42
- Ve as getSetupStatus,
43
- H as getSinglePlan,
44
- 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,
45
45
  n as getSnapshotFiles,
46
- ot as getStorage,
47
- ut as getStorageAuthorizeStatus,
46
+ rt as getStorage,
47
+ lt as getStorageAuthorizeStatus,
48
48
  m as getSystemMetrics,
49
- Dt as loginUser,
50
- Rt as logoutUser,
51
- J as pausePlan,
52
- K as performBackup,
53
- N as prunePlan,
54
- Ge as restoreBackup,
49
+ Gt as loginUser,
50
+ At as logoutUser,
51
+ H as pausePlan,
52
+ J as performBackup,
53
+ K as prunePlan,
54
+ Be as restoreBackup,
55
55
  Q as resumePlan,
56
- g as retryFailedReplications,
57
- Ie as setupTwoFactorAuth,
58
- rt as startStorageAuthorize,
59
- W as unlockPlan,
60
- c as updateBackup,
56
+ c as retryFailedReplications,
57
+ W as sendTestNotificationRequest,
58
+ ze as setupTwoFactorAuth,
59
+ nt as startStorageAuthorize,
60
+ X as unlockPlan,
61
+ g as updateBackup,
61
62
  v as updateDependent,
62
63
  y as updateDevice,
63
- X as updatePlan,
64
- be as updateSettings,
65
- lt as updateStorage,
66
- nt as useAddStorage,
67
- Gt as useAuth,
64
+ Y as updatePlan,
65
+ Me as updateSettings,
66
+ ct as updateStorage,
67
+ gt as useAddStorage,
68
+ Bt as useAuth,
68
69
  L as useBrowseDir,
69
70
  p as useCancelBackup,
70
71
  i as useCancelBackupDownload,
71
- Ae as useCancelRestore,
72
- Y as useCheckActiveBackupsOrRestore,
73
- ze as useCheckLatestVersion,
74
- Z as useCheckPlanIntegrity,
75
- Me as useCompleteSetup,
76
- _ as useCreatePlan,
77
- S as useDeleteBackup,
78
- $ as useDeletePlan,
79
- ee as useDeleteReplicationStorage,
80
- Be as useDeleteRestore,
81
- gt as useDeleteStorage,
82
- d as useDownloadBackup,
72
+ we as useCancelRestore,
73
+ Z as useCheckActiveBackupsOrRestore,
74
+ Ne as useCheckLatestVersion,
75
+ _ as useCheckPlanIntegrity,
76
+ qe as useCompleteSetup,
77
+ $ as useCreatePlan,
78
+ d as useDeleteBackup,
79
+ ee as useDeletePlan,
80
+ te as useDeleteReplicationStorage,
81
+ fe as useDeleteRestore,
82
+ pt as useDeleteStorage,
83
+ S as useDownloadBackup,
83
84
  je as useGetAppLogs,
84
- ct as useGetAvailableStorages,
85
+ it as useGetAvailableStorages,
85
86
  P as useGetBackupDownload,
86
87
  k as useGetBackupProgress,
87
88
  D as useGetBackupProgressOnce,
88
89
  F as useGetDevice,
89
- U as useGetDevices,
90
- qe as useGetDownloadAppLogs,
91
- te as useGetDownloadLogs,
92
- we as useGetDryRestoreStats,
93
- se as useGetPlan,
94
- ae as useGetPlanLogs,
95
- oe as useGetPlans,
96
- he as useGetRestore,
97
- fe as useGetRestoreProgress,
98
- me as useGetRestoreProgressOnce,
99
- ve as useGetRestoreStats,
100
- ye as useGetRestores,
101
- 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,
102
103
  R as useGetSnapshotFiles,
103
- pt as useGetStorage,
104
- it as useGetStorages,
105
- C as useGetSystemMetrics,
106
- At as useLogin,
107
- Bt as useLogout,
108
- ue as usePausePlan,
109
- re as usePerformBackup,
110
- le as usePrunePlan,
111
- Le as useRestoreBackup,
112
- 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,
113
114
  G as useRetryFailedReplications,
114
- He as useSetupStatus,
115
- Je as useSetupTwoFactorAuth,
116
- ge as useUnlockPlan,
115
+ Je as useSetupStatus,
116
+ Ke as useSetupTwoFactorAuth,
117
+ ge as useTestNotification,
118
+ pe as useUnlockPlan,
117
119
  A as useUpdateBackup,
118
- T as useUpdateDependent,
120
+ C as useUpdateDependent,
119
121
  x as useUpdateDevice,
120
- ce as useUpdatePlan,
121
- Ke as useUpdateSettings,
122
- St as useUpdateStorage,
123
- Ne as useValidateIntegration,
124
- dt as useVerifyStorage,
125
- Qe as useVerifyTwoFactorAuth,
126
- We as useVerifyTwoFactorOTP,
127
- wt as validateAuth,
128
- Xe as validateIntegration,
129
- Pt as verifyStorage,
130
- Ye as verifyTwoFactorAuth,
131
- 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
132
134
  };
133
135
  //# sourceMappingURL=services.js.map