@plutonhq/core-frontend 0.1.14 → 0.1.17

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 (77) hide show
  1. package/dist-lib/components/App/Footer/Footer.d.ts +2 -1
  2. package/dist-lib/components/App/Footer/Footer.d.ts.map +1 -1
  3. package/dist-lib/components/App/Footer/Footer.js +29 -18
  4. package/dist-lib/components/App/Footer/Footer.js.map +1 -1
  5. package/dist-lib/components/Plan/PlanForm/PlanForm.js +74 -74
  6. package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
  7. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts +16 -0
  8. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts.map +1 -0
  9. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js +115 -0
  10. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js.map +1 -0
  11. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js +26 -0
  12. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js.map +1 -0
  13. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.d.ts +2 -2
  14. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.d.ts.map +1 -1
  15. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.js.map +1 -1
  16. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts +1 -1
  17. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts.map +1 -1
  18. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +55 -27
  19. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
  20. package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.d.ts +7 -0
  21. package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.d.ts.map +1 -0
  22. package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.js +79 -0
  23. package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.js.map +1 -0
  24. package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.module.scss.js +24 -0
  25. package/dist-lib/components/Settings/TwoFactorSetup/TwoFactorSetup.module.scss.js.map +1 -0
  26. package/dist-lib/components/index.d.ts +2 -0
  27. package/dist-lib/components/index.d.ts.map +1 -1
  28. package/dist-lib/components.js +73 -69
  29. package/dist-lib/components.js.map +1 -1
  30. package/dist-lib/node_modules/.pnpm/@tanstack_query-core@5.96.0/node_modules/@tanstack/query-core/build/modern/notifyManager.js +68 -0
  31. package/dist-lib/node_modules/.pnpm/@tanstack_query-core@5.96.0/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -0
  32. package/dist-lib/node_modules/.pnpm/@tanstack_query-core@5.96.0/node_modules/@tanstack/query-core/build/modern/timeoutManager.js +7 -0
  33. package/dist-lib/node_modules/.pnpm/@tanstack_query-core@5.96.0/node_modules/@tanstack/query-core/build/modern/timeoutManager.js.map +1 -0
  34. package/dist-lib/node_modules/.pnpm/@tanstack_query-core@5.96.0/node_modules/@tanstack/query-core/build/modern/utils.js +55 -0
  35. package/dist-lib/node_modules/.pnpm/@tanstack_query-core@5.96.0/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -0
  36. package/dist-lib/node_modules/.pnpm/@tanstack_query-persist-client-core@5.96.0/node_modules/@tanstack/query-persist-client-core/build/modern/createPersister.js +190 -0
  37. package/dist-lib/node_modules/.pnpm/@tanstack_query-persist-client-core@5.96.0/node_modules/@tanstack/query-persist-client-core/build/modern/createPersister.js.map +1 -0
  38. package/dist-lib/router.d.ts.map +1 -1
  39. package/dist-lib/router.js +42 -39
  40. package/dist-lib/router.js.map +1 -1
  41. package/dist-lib/routes/PlanSingle/PlanSingle.d.ts.map +1 -1
  42. package/dist-lib/routes/PlanSingle/PlanSingle.js +123 -98
  43. package/dist-lib/routes/PlanSingle/PlanSingle.js.map +1 -1
  44. package/dist-lib/services/plans.d.ts +6 -0
  45. package/dist-lib/services/plans.d.ts.map +1 -1
  46. package/dist-lib/services/plans.js +151 -127
  47. package/dist-lib/services/plans.js.map +1 -1
  48. package/dist-lib/services/settings.d.ts +18 -0
  49. package/dist-lib/services/settings.d.ts.map +1 -1
  50. package/dist-lib/services/settings.js +182 -72
  51. package/dist-lib/services/settings.js.map +1 -1
  52. package/dist-lib/services/users.d.ts +1 -1
  53. package/dist-lib/services/users.d.ts.map +1 -1
  54. package/dist-lib/services/users.js.map +1 -1
  55. package/dist-lib/services.js +98 -88
  56. package/dist-lib/styles/core-frontend.css +1 -1
  57. package/dist-lib/utils/helpers.d.ts +1 -0
  58. package/dist-lib/utils/helpers.d.ts.map +1 -1
  59. package/dist-lib/utils/helpers.js +74 -70
  60. package/dist-lib/utils/helpers.js.map +1 -1
  61. package/dist-lib/utils.js +28 -27
  62. package/package.json +5 -4
  63. package/src/components/App/Footer/Footer.tsx +17 -2
  64. package/src/components/Plan/PlanForm/PlanForm.tsx +14 -14
  65. package/src/components/Plan/PlanIntegrity/PlanIntegrity.module.scss +110 -0
  66. package/src/components/Plan/PlanIntegrity/PlanIntegrity.tsx +187 -0
  67. package/src/components/Plan/PlanPendingBackup/PlanPendingBackup.tsx +2 -2
  68. package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +37 -1
  69. package/src/components/Settings/TwoFactorSetup/TwoFactorSetup.module.scss +62 -0
  70. package/src/components/Settings/TwoFactorSetup/TwoFactorSetup.tsx +102 -0
  71. package/src/components/index.ts +2 -0
  72. package/src/router.tsx +6 -1
  73. package/src/routes/PlanSingle/PlanSingle.tsx +21 -0
  74. package/src/services/plans.ts +30 -0
  75. package/src/services/settings.ts +126 -0
  76. package/src/services/users.ts +1 -1
  77. package/src/utils/helpers.ts +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPersister.js","sources":["../../../../../../../../../../node_modules/.pnpm/@tanstack+query-persist-client-core@5.96.0/node_modules/@tanstack/query-persist-client-core/build/modern/createPersister.js"],"sourcesContent":["// src/createPersister.ts\nimport {\n hashKey,\n matchQuery,\n notifyManager,\n partialMatchKey\n} from \"@tanstack/query-core\";\nvar PERSISTER_KEY_PREFIX = \"tanstack-query\";\nfunction experimental_createQueryPersister({\n storage,\n buster = \"\",\n maxAge = 1e3 * 60 * 60 * 24,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n prefix = PERSISTER_KEY_PREFIX,\n refetchOnRestore = true,\n filters\n}) {\n function isExpiredOrBusted(persistedQuery) {\n if (persistedQuery.state.dataUpdatedAt) {\n const queryAge = Date.now() - persistedQuery.state.dataUpdatedAt;\n const expired = queryAge > maxAge;\n const busted = persistedQuery.buster !== buster;\n if (expired || busted) {\n return true;\n }\n return false;\n }\n return true;\n }\n async function retrieveQuery(queryHash, afterRestoreMacroTask) {\n if (storage != null) {\n const storageKey = `${prefix}-${queryHash}`;\n try {\n const storedData = await storage.getItem(storageKey);\n if (storedData) {\n let persistedQuery;\n try {\n persistedQuery = await deserialize(storedData);\n } catch {\n await storage.removeItem(storageKey);\n return;\n }\n if (isExpiredOrBusted(persistedQuery)) {\n await storage.removeItem(storageKey);\n } else {\n if (afterRestoreMacroTask) {\n notifyManager.schedule(\n () => afterRestoreMacroTask(persistedQuery)\n );\n }\n return persistedQuery.state.data;\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV === \"development\") {\n console.error(err);\n console.warn(\n \"Encountered an error attempting to restore query cache from persisted location.\"\n );\n }\n await storage.removeItem(storageKey);\n }\n }\n return;\n }\n async function persistQueryByKey(queryKey, queryClient) {\n if (storage != null) {\n const query = queryClient.getQueryCache().find({ queryKey });\n if (query) {\n await persistQuery(query);\n } else {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\n \"Could not find query to be persisted. QueryKey:\",\n JSON.stringify(queryKey)\n );\n }\n }\n }\n }\n async function persistQuery(query) {\n if (storage != null) {\n const storageKey = `${prefix}-${query.queryHash}`;\n storage.setItem(\n storageKey,\n await serialize({\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n buster\n })\n );\n }\n }\n async function persisterFn(queryFn, ctx, query) {\n const matchesFilter = filters ? matchQuery(filters, query) : true;\n if (matchesFilter && query.state.data === void 0 && storage != null) {\n const restoredData = await retrieveQuery(\n query.queryHash,\n (persistedQuery) => {\n query.setState({\n dataUpdatedAt: persistedQuery.state.dataUpdatedAt,\n errorUpdatedAt: persistedQuery.state.errorUpdatedAt\n });\n if (refetchOnRestore === \"always\" || refetchOnRestore === true && query.isStale()) {\n query.fetch();\n }\n }\n );\n if (restoredData !== void 0) {\n return Promise.resolve(restoredData);\n }\n }\n const queryFnResult = await queryFn(ctx);\n if (matchesFilter && storage != null) {\n notifyManager.schedule(() => {\n persistQuery(query);\n });\n }\n return Promise.resolve(queryFnResult);\n }\n async function persisterGc() {\n if (storage?.entries) {\n const storageKeyPrefix = `${prefix}-`;\n const entries = await storage.entries();\n for (const [key, value] of entries) {\n if (key.startsWith(storageKeyPrefix)) {\n let persistedQuery;\n try {\n persistedQuery = await deserialize(value);\n } catch {\n await storage.removeItem(key);\n continue;\n }\n if (isExpiredOrBusted(persistedQuery)) {\n await storage.removeItem(key);\n }\n }\n }\n } else if (process.env.NODE_ENV === \"development\") {\n throw new Error(\n \"Provided storage does not implement `entries` method. Garbage collection is not possible without ability to iterate over storage items.\"\n );\n }\n }\n async function restoreQueries(queryClient, filters2 = {}) {\n const { exact, queryKey } = filters2;\n if (storage?.entries) {\n const storageKeyPrefix = `${prefix}-`;\n const entries = await storage.entries();\n for (const [key, value] of entries) {\n if (key.startsWith(storageKeyPrefix)) {\n let persistedQuery;\n try {\n persistedQuery = await deserialize(value);\n } catch {\n await storage.removeItem(key);\n continue;\n }\n if (isExpiredOrBusted(persistedQuery)) {\n await storage.removeItem(key);\n continue;\n }\n if (queryKey) {\n if (exact) {\n if (persistedQuery.queryHash !== hashKey(queryKey)) {\n continue;\n }\n } else if (!partialMatchKey(persistedQuery.queryKey, queryKey)) {\n continue;\n }\n }\n queryClient.setQueryData(\n persistedQuery.queryKey,\n persistedQuery.state.data,\n {\n updatedAt: persistedQuery.state.dataUpdatedAt\n }\n );\n }\n }\n } else if (process.env.NODE_ENV === \"development\") {\n throw new Error(\n \"Provided storage does not implement `entries` method. Restoration of all stored entries is not possible without ability to iterate over storage items.\"\n );\n }\n }\n async function removeQueries(filters2 = {}) {\n const { exact, queryKey } = filters2;\n if (storage?.entries) {\n const entries = await storage.entries();\n const storageKeyPrefix = `${prefix}-`;\n for (const [key, value] of entries) {\n if (key.startsWith(storageKeyPrefix)) {\n if (!queryKey) {\n await storage.removeItem(key);\n continue;\n }\n let persistedQuery;\n try {\n persistedQuery = await deserialize(value);\n } catch {\n await storage.removeItem(key);\n continue;\n }\n if (exact) {\n if (persistedQuery.queryHash !== hashKey(queryKey)) {\n continue;\n }\n } else if (!partialMatchKey(persistedQuery.queryKey, queryKey)) {\n continue;\n }\n await storage.removeItem(key);\n }\n }\n } else if (process.env.NODE_ENV === \"development\") {\n throw new Error(\n \"Provided storage does not implement `entries` method. Removal of stored entries is not possible without ability to iterate over storage items.\"\n );\n }\n }\n return {\n persisterFn,\n persistQuery,\n persistQueryByKey,\n retrieveQuery,\n persisterGc,\n restoreQueries,\n removeQueries\n };\n}\nexport {\n PERSISTER_KEY_PREFIX,\n experimental_createQueryPersister\n};\n//# sourceMappingURL=createPersister.js.map"],"names":["PERSISTER_KEY_PREFIX","experimental_createQueryPersister","storage","buster","maxAge","serialize","deserialize","prefix","refetchOnRestore","filters","isExpiredOrBusted","persistedQuery","expired","busted","retrieveQuery","queryHash","afterRestoreMacroTask","storageKey","storedData","notifyManager","err","persistQueryByKey","queryKey","queryClient","query","persistQuery","persisterFn","queryFn","ctx","matchesFilter","matchQuery","restoredData","queryFnResult","persisterGc","storageKeyPrefix","entries","key","value","restoreQueries","filters2","exact","hashKey","partialMatchKey","removeQueries"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.tsx"],"names":[],"mappings":"AAkEA,wBAAgB,SAAS,4CAuBxB"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.tsx"],"names":[],"mappings":"AAuEA,wBAAgB,SAAS,4CAuBxB"}
@@ -1,54 +1,57 @@
1
- import { jsxs as i, jsx as e, Fragment as p } from "react/jsx-runtime";
2
- import { Routes as d, Route as t, Navigate as a } from "react-router";
3
- import c from "./routes/Plans/Plans.js";
4
- import f from "./routes/Login/Login.js";
5
- import g from "./routes/Setup/Setup.js";
6
- import { useAuth as m } from "./services/users.js";
7
- import h from "./components/App/App/App.js";
8
- import S from "./routes/Settings/Settings.js";
9
- import v from "./routes/Storages/Storages.js";
10
- import y from "./routes/Sources/Sources.js";
11
- import L from "./routes/PlanSingle/PlanSingle.js";
12
- import P from "./routes/DeviceSingle/DeviceSingle.js";
13
- import R from "./components/App/Footer/Footer.js";
14
- import w from "./routes/NotFoundRoute/NotFoundRoute.js";
15
- import l from "./components/common/Icon/Icon.js";
16
- function x({ children: o }) {
17
- const { data: r, isLoading: n } = m();
18
- return n ? /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(l, { size: 60, type: "loading" }) }) : r ? /* @__PURE__ */ e(a, { to: "/", replace: !0 }) : /* @__PURE__ */ e(p, { children: o });
1
+ import { jsxs as s, jsx as e, Fragment as u } from "react/jsx-runtime";
2
+ import { Routes as v, Route as t, Navigate as p } from "react-router";
3
+ import S from "./routes/Plans/Plans.js";
4
+ import V from "./routes/Login/Login.js";
5
+ import w from "./routes/Setup/Setup.js";
6
+ import { useAuth as c } from "./services/users.js";
7
+ import L from "./components/App/App/App.js";
8
+ import y from "./routes/Settings/Settings.js";
9
+ import P from "./routes/Storages/Storages.js";
10
+ import N from "./routes/Sources/Sources.js";
11
+ import R from "./routes/PlanSingle/PlanSingle.js";
12
+ import x from "./routes/DeviceSingle/DeviceSingle.js";
13
+ import A from "./components/App/Footer/Footer.js";
14
+ import F from "./routes/NotFoundRoute/NotFoundRoute.js";
15
+ import d from "./components/common/Icon/Icon.js";
16
+ import { useCheckLatestVersion as b } from "./services/settings.js";
17
+ import { compareVersions as j } from "./utils/helpers.js";
18
+ function k({ children: r }) {
19
+ const { data: n, isLoading: i } = c();
20
+ return i ? /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(d, { size: 60, type: "loading" }) }) : n ? /* @__PURE__ */ e(p, { to: "/", replace: !0 }) : /* @__PURE__ */ e(u, { children: r });
19
21
  }
20
- function N() {
21
- const { data: o, isError: r, isLoading: n } = m();
22
- if (n)
23
- return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(l, { size: 60, type: "loading" }) });
24
- const s = window.plutonInstallType, u = window.plutonSetupPending;
25
- return s === "binary" && u ? /* @__PURE__ */ e(a, { to: "/setup", replace: !0 }) : r ? /* @__PURE__ */ e(a, { to: "/login", replace: !0 }) : (console.log("User data :", o), /* @__PURE__ */ i(p, { children: [
26
- /* @__PURE__ */ e(h, {}),
27
- /* @__PURE__ */ e(R, { version: (o == null ? void 0 : o.appVersion) || "" })
22
+ function z() {
23
+ var m, a;
24
+ const { data: r, isError: n, isLoading: i } = c(), { data: o } = b(), l = window.plutonVersion || "unknown", f = ((m = o == null ? void 0 : o.result) == null ? void 0 : m.latestVersion) && l !== "dev" && j(l, o.result.latestVersion);
25
+ if (i)
26
+ return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(d, { size: 60, type: "loading" }) });
27
+ const g = window.plutonInstallType, h = window.plutonSetupPending;
28
+ return g === "binary" && h ? /* @__PURE__ */ e(p, { to: "/setup", replace: !0 }) : n ? /* @__PURE__ */ e(p, { to: "/login", replace: !0 }) : (console.log("User data :", r), /* @__PURE__ */ s(u, { children: [
29
+ /* @__PURE__ */ e(L, {}),
30
+ /* @__PURE__ */ e(A, { version: (r == null ? void 0 : r.appVersion) || "", latestVersion: f ? (a = o == null ? void 0 : o.result) == null ? void 0 : a.latestVersion : void 0 })
28
31
  ] }));
29
32
  }
30
- function G() {
31
- return /* @__PURE__ */ i(d, { children: [
32
- /* @__PURE__ */ i(t, { path: "/", element: /* @__PURE__ */ e(N, {}), children: [
33
- /* @__PURE__ */ e(t, { index: !0, element: /* @__PURE__ */ e(c, {}) }),
34
- /* @__PURE__ */ e(t, { path: "settings", element: /* @__PURE__ */ e(S, {}) }),
35
- /* @__PURE__ */ e(t, { path: "storages", element: /* @__PURE__ */ e(v, {}) }),
36
- /* @__PURE__ */ e(t, { path: "sources", element: /* @__PURE__ */ e(y, {}) }),
37
- /* @__PURE__ */ e(t, { path: "device/:id", element: /* @__PURE__ */ e(P, {}) }),
38
- /* @__PURE__ */ e(t, { path: "plan/:id", element: /* @__PURE__ */ e(L, {}) }),
39
- /* @__PURE__ */ e(t, { path: "*", element: /* @__PURE__ */ e(w, {}) })
33
+ function Y() {
34
+ return /* @__PURE__ */ s(v, { children: [
35
+ /* @__PURE__ */ s(t, { path: "/", element: /* @__PURE__ */ e(z, {}), children: [
36
+ /* @__PURE__ */ e(t, { index: !0, element: /* @__PURE__ */ e(S, {}) }),
37
+ /* @__PURE__ */ e(t, { path: "settings", element: /* @__PURE__ */ e(y, {}) }),
38
+ /* @__PURE__ */ e(t, { path: "storages", element: /* @__PURE__ */ e(P, {}) }),
39
+ /* @__PURE__ */ e(t, { path: "sources", element: /* @__PURE__ */ e(N, {}) }),
40
+ /* @__PURE__ */ e(t, { path: "device/:id", element: /* @__PURE__ */ e(x, {}) }),
41
+ /* @__PURE__ */ e(t, { path: "plan/:id", element: /* @__PURE__ */ e(R, {}) }),
42
+ /* @__PURE__ */ e(t, { path: "*", element: /* @__PURE__ */ e(F, {}) })
40
43
  ] }),
41
44
  /* @__PURE__ */ e(
42
45
  t,
43
46
  {
44
47
  path: "login",
45
- element: /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e(f, {}) })
48
+ element: /* @__PURE__ */ e(k, { children: /* @__PURE__ */ e(V, {}) })
46
49
  }
47
50
  ),
48
- /* @__PURE__ */ e(t, { path: "setup", element: /* @__PURE__ */ e(g, {}) })
51
+ /* @__PURE__ */ e(t, { path: "setup", element: /* @__PURE__ */ e(w, {}) })
49
52
  ] });
50
53
  }
51
54
  export {
52
- G as AppRoutes
55
+ Y as AppRoutes
53
56
  };
54
57
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sources":["../src/router.tsx"],"sourcesContent":["import { Routes, Route, Navigate } from 'react-router';\r\nimport Plans from './routes/Plans/Plans';\r\nimport Login from './routes/Login/Login';\r\nimport Setup from './routes/Setup/Setup';\r\nimport { useAuth } from './services/users';\r\nimport App from './components/App/App/App';\r\nimport Settings from './routes/Settings/Settings';\r\nimport Storages from './routes/Storages/Storages';\r\nimport Sources from './routes/Sources/Sources';\r\nimport PlanSingle from './routes/PlanSingle/PlanSingle';\r\nimport DeviceSingle from './routes/DeviceSingle/DeviceSingle';\r\nimport Footer from './components/App/Footer/Footer';\r\nimport NotFoundRoute from './routes/NotFoundRoute/NotFoundRoute';\r\nimport Icon from './components/common/Icon/Icon';\r\n\r\nfunction PublicRoute({ children }: { children: React.ReactNode }) {\r\n const { data: authData, isLoading: authLoading } = useAuth();\r\n\r\n if (authLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n if (authData) {\r\n return <Navigate to=\"/\" replace />;\r\n }\r\n\r\n return <>{children}</>;\r\n}\r\n\r\nfunction ProtectedLayout() {\r\n const { data: authData, isError: authError, isLoading: authLoading } = useAuth();\r\n\r\n if (authLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n // Check setup-pending from auth response headers (set by versionMiddleware on all responses)\r\n const installType = (window as any).plutonInstallType;\r\n const setupPending = (window as any).plutonSetupPending;\r\n if (installType === 'binary' && setupPending) {\r\n return <Navigate to=\"/setup\" replace />;\r\n }\r\n\r\n // If auth failed, redirect to login\r\n if (authError) {\r\n return <Navigate to=\"/login\" replace />;\r\n }\r\n\r\n console.log('User data :', authData);\r\n\r\n return (\r\n <>\r\n <App />\r\n <Footer version={authData?.appVersion || ''} />\r\n </>\r\n );\r\n}\r\n\r\nexport function AppRoutes() {\r\n return (\r\n <Routes>\r\n <Route path=\"/\" element={<ProtectedLayout />}>\r\n <Route index element={<Plans />} />\r\n <Route path=\"settings\" element={<Settings />} />\r\n <Route path=\"storages\" element={<Storages />} />\r\n <Route path=\"sources\" element={<Sources />} />\r\n <Route path={'device/:id'} element={<DeviceSingle />} />\r\n <Route path={'plan/:id'} element={<PlanSingle />} />\r\n <Route path=\"*\" element={<NotFoundRoute />} />\r\n </Route>\r\n <Route\r\n path=\"login\"\r\n element={\r\n <PublicRoute>\r\n <Login />\r\n </PublicRoute>\r\n }\r\n />\r\n <Route path=\"setup\" element={<Setup />} />\r\n </Routes>\r\n );\r\n}\r\n"],"names":["PublicRoute","children","authData","authLoading","useAuth","jsx","Icon","Navigate","ProtectedLayout","authError","installType","setupPending","jsxs","Fragment","App","Footer","AppRoutes","Routes","Route","Plans","Settings","Storages","Sources","DeviceSingle","PlanSingle","NotFoundRoute","Login","Setup"],"mappings":";;;;;;;;;;;;;;;AAeA,SAASA,EAAY,EAAE,UAAAC,KAA2C;AAC/D,QAAM,EAAE,MAAMC,GAAU,WAAWC,EAAA,IAAgBC,EAAA;AAEnD,SAAID,IAEE,gBAAAE,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAA,gBAAAA,EAACC,KAAK,MAAM,IAAI,MAAK,UAAA,CAAU,EAAA,CAClC,IAIFJ,IACM,gBAAAG,EAACE,GAAA,EAAS,IAAG,KAAI,SAAO,IAAC,2BAGzB,UAAAN,GAAS;AACtB;AAEA,SAASO,IAAkB;AACxB,QAAM,EAAE,MAAMN,GAAU,SAASO,GAAW,WAAWN,EAAA,IAAgBC,EAAA;AAEvE,MAAID;AACD,WACG,gBAAAE,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAA,gBAAAA,EAACC,KAAK,MAAM,IAAI,MAAK,UAAA,CAAU,EAAA,CAClC;AAKN,QAAMI,IAAe,OAAe,mBAC9BC,IAAgB,OAAe;AACrC,SAAID,MAAgB,YAAYC,IACtB,gBAAAN,EAACE,GAAA,EAAS,IAAG,UAAS,SAAO,IAAC,IAIpCE,IACM,gBAAAJ,EAACE,GAAA,EAAS,IAAG,UAAS,SAAO,IAAC,KAGxC,QAAQ,IAAI,eAAeL,CAAQ,GAGhC,gBAAAU,EAAAC,GAAA,EACG,UAAA;AAAA,IAAA,gBAAAR,EAACS,GAAA,EAAI;AAAA,IACL,gBAAAT,EAACU,GAAA,EAAO,UAASb,KAAA,gBAAAA,EAAU,eAAc,GAAA,CAAI;AAAA,EAAA,GAChD;AAEN;AAEO,SAASc,IAAY;AACzB,2BACIC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAL,EAACM,KAAM,MAAK,KAAI,SAAS,gBAAAb,EAACG,KAAgB,GACvC,UAAA;AAAA,MAAA,gBAAAH,EAACa,KAAM,OAAK,IAAC,SAAS,gBAAAb,EAACc,KAAM,GAAI;AAAA,wBAChCD,GAAA,EAAM,MAAK,YAAW,SAAS,gBAAAb,EAACe,KAAS,GAAI;AAAA,wBAC7CF,GAAA,EAAM,MAAK,YAAW,SAAS,gBAAAb,EAACgB,KAAS,GAAI;AAAA,wBAC7CH,GAAA,EAAM,MAAK,WAAU,SAAS,gBAAAb,EAACiB,KAAQ,GAAI;AAAA,wBAC3CJ,GAAA,EAAM,MAAM,cAAc,SAAS,gBAAAb,EAACkB,KAAa,GAAI;AAAA,wBACrDL,GAAA,EAAM,MAAM,YAAY,SAAS,gBAAAb,EAACmB,KAAW,GAAI;AAAA,wBACjDN,GAAA,EAAM,MAAK,KAAI,SAAS,gBAAAb,EAACoB,KAAc,EAAA,CAAI;AAAA,IAAA,GAC/C;AAAA,IACA,gBAAApB;AAAA,MAACa;AAAA,MAAA;AAAA,QACE,MAAK;AAAA,QACL,SACG,gBAAAb,EAACL,GAAA,EACE,UAAA,gBAAAK,EAACqB,KAAM,EAAA,CACV;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGLR,GAAA,EAAM,MAAK,SAAQ,SAAS,gBAAAb,EAACsB,KAAM,EAAA,CAAI;AAAA,EAAA,GAC3C;AAEN;"}
1
+ {"version":3,"file":"router.js","sources":["../src/router.tsx"],"sourcesContent":["import { Routes, Route, Navigate } from 'react-router';\r\nimport Plans from './routes/Plans/Plans';\r\nimport Login from './routes/Login/Login';\r\nimport Setup from './routes/Setup/Setup';\r\nimport { useAuth } from './services/users';\r\nimport App from './components/App/App/App';\r\nimport Settings from './routes/Settings/Settings';\r\nimport Storages from './routes/Storages/Storages';\r\nimport Sources from './routes/Sources/Sources';\r\nimport PlanSingle from './routes/PlanSingle/PlanSingle';\r\nimport DeviceSingle from './routes/DeviceSingle/DeviceSingle';\r\nimport Footer from './components/App/Footer/Footer';\r\nimport NotFoundRoute from './routes/NotFoundRoute/NotFoundRoute';\r\nimport Icon from './components/common/Icon/Icon';\r\nimport { useCheckLatestVersion } from './services';\r\nimport { compareVersions } from './utils';\r\n\r\nfunction PublicRoute({ children }: { children: React.ReactNode }) {\r\n const { data: authData, isLoading: authLoading } = useAuth();\r\n\r\n if (authLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n if (authData) {\r\n return <Navigate to=\"/\" replace />;\r\n }\r\n\r\n return <>{children}</>;\r\n}\r\n\r\nfunction ProtectedLayout() {\r\n const { data: authData, isError: authError, isLoading: authLoading } = useAuth();\r\n const { data } = useCheckLatestVersion();\r\n const version = (window as any).plutonVersion || 'unknown';\r\n const hasNewVersion = data?.result?.latestVersion && version !== 'dev' && compareVersions(version, data.result.latestVersion);\r\n\r\n if (authLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n // Check setup-pending from auth response headers (set by versionMiddleware on all responses)\r\n const installType = (window as any).plutonInstallType;\r\n const setupPending = (window as any).plutonSetupPending;\r\n if (installType === 'binary' && setupPending) {\r\n return <Navigate to=\"/setup\" replace />;\r\n }\r\n\r\n // If auth failed, redirect to login\r\n if (authError) {\r\n return <Navigate to=\"/login\" replace />;\r\n }\r\n\r\n console.log('User data :', authData);\r\n\r\n return (\r\n <>\r\n <App />\r\n <Footer version={authData?.appVersion || ''} latestVersion={hasNewVersion ? data?.result?.latestVersion : undefined} />\r\n </>\r\n );\r\n}\r\n\r\nexport function AppRoutes() {\r\n return (\r\n <Routes>\r\n <Route path=\"/\" element={<ProtectedLayout />}>\r\n <Route index element={<Plans />} />\r\n <Route path=\"settings\" element={<Settings />} />\r\n <Route path=\"storages\" element={<Storages />} />\r\n <Route path=\"sources\" element={<Sources />} />\r\n <Route path={'device/:id'} element={<DeviceSingle />} />\r\n <Route path={'plan/:id'} element={<PlanSingle />} />\r\n <Route path=\"*\" element={<NotFoundRoute />} />\r\n </Route>\r\n <Route\r\n path=\"login\"\r\n element={\r\n <PublicRoute>\r\n <Login />\r\n </PublicRoute>\r\n }\r\n />\r\n <Route path=\"setup\" element={<Setup />} />\r\n </Routes>\r\n );\r\n}\r\n"],"names":["PublicRoute","children","authData","authLoading","useAuth","jsx","Icon","Navigate","ProtectedLayout","authError","data","useCheckLatestVersion","version","hasNewVersion","_a","compareVersions","installType","setupPending","jsxs","Fragment","App","Footer","_b","AppRoutes","Routes","Route","Plans","Settings","Storages","Sources","DeviceSingle","PlanSingle","NotFoundRoute","Login","Setup"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,SAASA,EAAY,EAAE,UAAAC,KAA2C;AAC/D,QAAM,EAAE,MAAMC,GAAU,WAAWC,EAAA,IAAgBC,EAAA;AAEnD,SAAID,IAEE,gBAAAE,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAA,gBAAAA,EAACC,KAAK,MAAM,IAAI,MAAK,UAAA,CAAU,EAAA,CAClC,IAIFJ,IACM,gBAAAG,EAACE,GAAA,EAAS,IAAG,KAAI,SAAO,IAAC,2BAGzB,UAAAN,GAAS;AACtB;AAEA,SAASO,IAAkB;;AACxB,QAAM,EAAE,MAAMN,GAAU,SAASO,GAAW,WAAWN,EAAA,IAAgBC,EAAA,GACjE,EAAE,MAAAM,EAAA,IAASC,EAAA,GACXC,IAAW,OAAe,iBAAiB,WAC3CC,MAAgBC,IAAAJ,KAAA,gBAAAA,EAAM,WAAN,gBAAAI,EAAc,kBAAiBF,MAAY,SAASG,EAAgBH,GAASF,EAAK,OAAO,aAAa;AAE5H,MAAIP;AACD,WACG,gBAAAE,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAA,gBAAAA,EAACC,KAAK,MAAM,IAAI,MAAK,UAAA,CAAU,EAAA,CAClC;AAKN,QAAMU,IAAe,OAAe,mBAC9BC,IAAgB,OAAe;AACrC,SAAID,MAAgB,YAAYC,IACtB,gBAAAZ,EAACE,GAAA,EAAS,IAAG,UAAS,SAAO,IAAC,IAIpCE,IACM,gBAAAJ,EAACE,GAAA,EAAS,IAAG,UAAS,SAAO,IAAC,KAGxC,QAAQ,IAAI,eAAeL,CAAQ,GAGhC,gBAAAgB,EAAAC,GAAA,EACG,UAAA;AAAA,IAAA,gBAAAd,EAACe,GAAA,EAAI;AAAA,IACL,gBAAAf,EAACgB,GAAA,EAAO,UAASnB,KAAA,gBAAAA,EAAU,eAAc,IAAI,eAAeW,KAAgBS,IAAAZ,KAAA,gBAAAA,EAAM,WAAN,gBAAAY,EAAc,gBAAgB,OAAA,CAAW;AAAA,EAAA,GACxH;AAEN;AAEO,SAASC,IAAY;AACzB,2BACIC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAN,EAACO,KAAM,MAAK,KAAI,SAAS,gBAAApB,EAACG,KAAgB,GACvC,UAAA;AAAA,MAAA,gBAAAH,EAACoB,KAAM,OAAK,IAAC,SAAS,gBAAApB,EAACqB,KAAM,GAAI;AAAA,wBAChCD,GAAA,EAAM,MAAK,YAAW,SAAS,gBAAApB,EAACsB,KAAS,GAAI;AAAA,wBAC7CF,GAAA,EAAM,MAAK,YAAW,SAAS,gBAAApB,EAACuB,KAAS,GAAI;AAAA,wBAC7CH,GAAA,EAAM,MAAK,WAAU,SAAS,gBAAApB,EAACwB,KAAQ,GAAI;AAAA,wBAC3CJ,GAAA,EAAM,MAAM,cAAc,SAAS,gBAAApB,EAACyB,KAAa,GAAI;AAAA,wBACrDL,GAAA,EAAM,MAAM,YAAY,SAAS,gBAAApB,EAAC0B,KAAW,GAAI;AAAA,wBACjDN,GAAA,EAAM,MAAK,KAAI,SAAS,gBAAApB,EAAC2B,KAAc,EAAA,CAAI;AAAA,IAAA,GAC/C;AAAA,IACA,gBAAA3B;AAAA,MAACoB;AAAA,MAAA;AAAA,QACE,MAAK;AAAA,QACL,SACG,gBAAApB,EAACL,GAAA,EACE,UAAA,gBAAAK,EAAC4B,KAAM,EAAA,CACV;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGLR,GAAA,EAAM,MAAK,SAAQ,SAAS,gBAAApB,EAAC6B,KAAM,EAAA,CAAI;AAAA,EAAA,GAC3C;AAEN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanSingle.d.ts","sourceRoot":"","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,UAAU,+CAwKf,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"PlanSingle.d.ts","sourceRoot":"","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"names":[],"mappings":"AAkBA,QAAA,MAAM,UAAU,+CA4Lf,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,132 +1,146 @@
1
- import { jsx as e, jsxs as t, Fragment as S } from "react/jsx-runtime";
2
- import { useState as q } from "react";
3
- import { useParams as G, useSearchParams as J } from "react-router";
4
- import K from "../../components/common/PageHeader/PageHeader.js";
5
- import s from "../../components/common/Icon/Icon.js";
6
- import Q from "../../components/Plan/EditPlan/EditPlan.js";
7
- import W from "../../components/Plan/PlanLogs/PlanLogs.js";
8
- import { useComponentOverride as X } from "../../context/ComponentOverrideContext.js";
9
- import Y from "../../components/Plan/PlanStats/PlanStats.js";
10
- import { usePlanSingleActions as Z } from "../../hooks/usePlanSingleActions.js";
11
- import o from "./PlanSingle.module.scss.js";
12
- import _ from "../../components/common/NotFound/NotFound.js";
13
- import ee from "../../components/Plan/PlanPruneModal/PlanPruneModal.js";
14
- import oe from "../../components/Plan/PlanUnlockModal/PlanUnlockModal.js";
15
- import te from "../../components/Plan/PlanRemoveModal/PlanRemoveModal.js";
16
- import se from "../../components/Plan/PlanProgress/PlanProgress.js";
17
- import ne from "../../components/Plan/PlanBackups/PlanBackups.js";
18
- const ye = () => {
19
- var k;
20
- const [d, a] = q(!1), { id: l } = G(), y = X("EditPlan", Q), [m] = J(), w = m.get("pendingbackup") === "1", B = m.get("pendingrestore") === "1", {
21
- showDeleteModal: C,
1
+ import { jsx as e, jsxs as o, Fragment as w } from "react/jsx-runtime";
2
+ import { useState as B } from "react";
3
+ import { useParams as Q, useSearchParams as W } from "react-router";
4
+ import X from "../../components/common/PageHeader/PageHeader.js";
5
+ import n from "../../components/common/Icon/Icon.js";
6
+ import Y from "../../components/Plan/EditPlan/EditPlan.js";
7
+ import Z from "../../components/Plan/PlanLogs/PlanLogs.js";
8
+ import { useComponentOverride as _ } from "../../context/ComponentOverrideContext.js";
9
+ import ee from "../../components/Plan/PlanStats/PlanStats.js";
10
+ import { usePlanSingleActions as te } from "../../hooks/usePlanSingleActions.js";
11
+ import t from "./PlanSingle.module.scss.js";
12
+ import oe from "../../components/common/NotFound/NotFound.js";
13
+ import se from "../../components/Plan/PlanPruneModal/PlanPruneModal.js";
14
+ import ne from "../../components/Plan/PlanUnlockModal/PlanUnlockModal.js";
15
+ import ae from "../../components/Plan/PlanRemoveModal/PlanRemoveModal.js";
16
+ import ie from "../../components/Plan/PlanProgress/PlanProgress.js";
17
+ import le from "../../components/Plan/PlanBackups/PlanBackups.js";
18
+ import re from "../../components/Plan/PlanIntegrity/PlanIntegrity.js";
19
+ const ze = () => {
20
+ var y, M;
21
+ const [p, a] = B(!1), [C, m] = B(!1), { id: i } = Q(), v = _("EditPlan", Y), [h] = W(), z = h.get("pendingbackup") === "1", I = h.get("pendingrestore") === "1", {
22
+ showDeleteModal: b,
22
23
  setShowDeleteModal: u,
23
- showEditModal: v,
24
- setShowEditModal: h,
25
- showPruneModal: z,
24
+ showEditModal: E,
25
+ setShowEditModal: g,
26
+ showPruneModal: L,
26
27
  setShowPruneModal: f,
27
- showLogsModal: b,
28
- setShowLogsModal: g,
29
- showUnlockModal: I,
30
- setShowUnlockModal: P,
31
- plan: n,
32
- isLoading: E,
33
- refetchPlan: L,
34
- activeBackups: R,
35
- activeRestores: U,
36
- lastBackupItem: O,
28
+ showLogsModal: R,
29
+ setShowLogsModal: P,
30
+ showUnlockModal: U,
31
+ setShowUnlockModal: k,
32
+ plan: s,
33
+ isLoading: D,
34
+ refetchPlan: O,
35
+ activeBackups: T,
36
+ activeRestores: $,
37
+ lastBackupItem: x,
37
38
  taskPending: r,
38
- planError: p,
39
- actionInProgress: T,
40
- changeStatus: $,
41
- backupNow: x
42
- } = Z(), A = p == null ? void 0 : p.status;
43
- if (!l || A === 404)
44
- return /* @__PURE__ */ e(_, { name: "Plan", link: "/" });
39
+ planError: d,
40
+ actionInProgress: A,
41
+ changeStatus: j,
42
+ backupNow: F
43
+ } = te(), H = d == null ? void 0 : d.status;
44
+ if (!i || H === 404)
45
+ return /* @__PURE__ */ e(oe, { name: "Plan", link: "/" });
45
46
  {
46
- if (E)
47
- return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(s, { size: 60, type: "loading" }) });
48
- const { isActive: i, method: D, title: M, description: N, stats: j, settings: F } = n, H = F.prune, V = ((k = j.snapshots) == null ? void 0 : k.length) || 0, c = D === "sync";
49
- return /* @__PURE__ */ t("div", { className: o.planSingle, children: [
47
+ if (D)
48
+ return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(n, { size: 60, type: "loading" }) });
49
+ const { isActive: c, method: V, title: S, description: N, stats: q, settings: G } = s, J = G.prune, K = ((y = q.snapshots) == null ? void 0 : y.length) || 0, l = V === "sync";
50
+ return /* @__PURE__ */ o("div", { className: t.planSingle, children: [
50
51
  /* @__PURE__ */ e(
51
- K,
52
+ X,
52
53
  {
53
- title: /* @__PURE__ */ t(S, { children: [
54
- M,
54
+ title: /* @__PURE__ */ o(w, { children: [
55
+ S,
55
56
  " ",
56
- N && /* @__PURE__ */ e("span", { className: o.planDescription, "data-tooltip-id": "appTooltip", "data-tooltip-content": N, children: /* @__PURE__ */ e(s, { type: "note", size: 13 }) }),
57
- !i && /* @__PURE__ */ t("span", { className: "label warn", children: [
58
- /* @__PURE__ */ e(s, { size: 14, type: "pause", color: "#bf8d20" }),
57
+ N && /* @__PURE__ */ e("span", { className: t.planDescription, "data-tooltip-id": "appTooltip", "data-tooltip-content": N, children: /* @__PURE__ */ e(n, { type: "note", size: 13 }) }),
58
+ !c && /* @__PURE__ */ o("span", { className: "label warn", children: [
59
+ /* @__PURE__ */ e(n, { size: 14, type: "pause", color: "#bf8d20" }),
59
60
  " Paused"
60
61
  ] })
61
62
  ] }),
62
- pageTitle: M,
63
+ pageTitle: S,
63
64
  icon: "plans",
64
- rightSection: /* @__PURE__ */ e(S, { children: /* @__PURE__ */ t("div", { className: o.planActions, children: [
65
- /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: x, children: [
66
- /* @__PURE__ */ e(s, { size: 14, type: c ? "sync" : "backup" }),
65
+ rightSection: /* @__PURE__ */ e(w, { children: /* @__PURE__ */ o("div", { className: t.planActions, children: [
66
+ /* @__PURE__ */ o("button", { className: t.actionBtn, onClick: F, children: [
67
+ /* @__PURE__ */ e(n, { size: 14, type: l ? "sync" : "backup" }),
67
68
  " ",
68
- c ? "Sync" : "Backup",
69
+ l ? "Sync" : "Backup",
69
70
  " Now"
70
71
  ] }),
71
- /* @__PURE__ */ t("button", { className: `${o.actionBtn} ${i ? "" : o.actionBtnHighlight}`, onClick: $, children: [
72
- /* @__PURE__ */ e(s, { size: 14, type: i ? "pause" : "resume" }),
72
+ /* @__PURE__ */ o("button", { className: `${t.actionBtn} ${c ? "" : t.actionBtnHighlight}`, onClick: j, children: [
73
+ /* @__PURE__ */ e(n, { size: 14, type: c ? "pause" : "resume" }),
73
74
  " ",
74
- i ? "Pause" : "Resume"
75
+ c ? "Pause" : "Resume"
75
76
  ] }),
76
- /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: () => h(!0), children: [
77
- /* @__PURE__ */ e(s, { size: 14, type: "edit-settings" }),
77
+ /* @__PURE__ */ o("button", { className: t.actionBtn, onClick: () => g(!0), children: [
78
+ /* @__PURE__ */ e(n, { size: 14, type: "edit-settings" }),
78
79
  " Edit"
79
80
  ] }),
80
- /* @__PURE__ */ e("button", { className: `${o.actionBtn} ${o.actionMoreBtn}`, onClick: () => a(!d), children: /* @__PURE__ */ e(s, { size: 14, type: "dots-vertical" }) }),
81
- d && /* @__PURE__ */ t("ul", { className: o.moreOptions, children: [
82
- /* @__PURE__ */ t(
81
+ /* @__PURE__ */ e("button", { className: `${t.actionBtn} ${t.actionMoreBtn}`, onClick: () => a(!p), children: /* @__PURE__ */ e(n, { size: 14, type: "dots-vertical" }) }),
82
+ p && /* @__PURE__ */ o("ul", { className: t.moreOptions, children: [
83
+ /* @__PURE__ */ o(
83
84
  "li",
84
85
  {
85
- className: o.actionBtn,
86
+ className: t.actionBtn,
86
87
  onClick: () => {
87
88
  f(!0), a(!1);
88
89
  },
89
90
  children: [
90
- /* @__PURE__ */ e(s, { size: 14, type: "prune" }),
91
+ /* @__PURE__ */ e(n, { size: 14, type: "prune" }),
91
92
  " Clean Up"
92
93
  ]
93
94
  }
94
95
  ),
95
- !c && /* @__PURE__ */ t(
96
+ !l && /* @__PURE__ */ o(
96
97
  "li",
97
98
  {
98
- className: o.actionBtn,
99
+ className: t.actionBtn,
99
100
  onClick: () => {
100
- P(!0), a(!1);
101
+ k(!0), a(!1);
101
102
  },
102
103
  children: [
103
- /* @__PURE__ */ e(s, { size: 14, type: "unlock" }),
104
+ /* @__PURE__ */ e(n, { size: 14, type: "unlock" }),
104
105
  " Unlock"
105
106
  ]
106
107
  }
107
108
  ),
108
- /* @__PURE__ */ t(
109
+ /* @__PURE__ */ o(
110
+ "li",
111
+ {
112
+ className: t.actionBtn,
113
+ onClick: () => {
114
+ m(!0), a(!1);
115
+ },
116
+ children: [
117
+ /* @__PURE__ */ e(n, { size: 14, type: "integrity" }),
118
+ " Check Integrity"
119
+ ]
120
+ }
121
+ ),
122
+ /* @__PURE__ */ o(
109
123
  "li",
110
124
  {
111
- className: o.actionBtn,
125
+ className: t.actionBtn,
112
126
  onClick: () => {
113
- g(!0), a(!1);
127
+ P(!0), a(!1);
114
128
  },
115
129
  children: [
116
- /* @__PURE__ */ e(s, { size: 14, type: "logs" }),
130
+ /* @__PURE__ */ e(n, { size: 14, type: "logs" }),
117
131
  " View Logs"
118
132
  ]
119
133
  }
120
134
  ),
121
- /* @__PURE__ */ t(
135
+ /* @__PURE__ */ o(
122
136
  "li",
123
137
  {
124
- className: o.actionBtn,
138
+ className: t.actionBtn,
125
139
  onClick: () => {
126
140
  u(!0), a(!1);
127
141
  },
128
142
  children: [
129
- /* @__PURE__ */ e(s, { size: 14, type: "trash" }),
143
+ /* @__PURE__ */ e(n, { size: 14, type: "trash" }),
130
144
  " Remove"
131
145
  ]
132
146
  }
@@ -135,40 +149,51 @@ const ye = () => {
135
149
  ] }) })
136
150
  }
137
151
  ),
138
- /* @__PURE__ */ t("div", { className: o.planContent, children: [
139
- /* @__PURE__ */ e(Y, { plan: n, isSync: c, lastBackupItem: O }),
152
+ /* @__PURE__ */ o("div", { className: t.planContent, children: [
153
+ /* @__PURE__ */ e(ee, { plan: s, isSync: l, lastBackupItem: x }),
140
154
  /* @__PURE__ */ e(
141
- se,
155
+ ie,
142
156
  {
143
- plan: n,
144
- isBackupPending: w,
145
- isRestorePending: B,
146
- activeBackups: R,
147
- activeRestores: U,
148
- refetchPlan: L
157
+ plan: s,
158
+ isBackupPending: z,
159
+ isRestorePending: I,
160
+ activeBackups: T,
161
+ activeRestores: $,
162
+ refetchPlan: O
149
163
  }
150
164
  ),
151
- /* @__PURE__ */ e(ne, { plan: n })
165
+ /* @__PURE__ */ e(le, { plan: s })
152
166
  ] }),
153
- z && /* @__PURE__ */ e(
154
- ee,
167
+ L && /* @__PURE__ */ e(
168
+ se,
155
169
  {
156
- planId: l,
157
- method: n.method,
158
- prune: H,
159
- snapshotsCount: V,
170
+ planId: i,
171
+ method: s.method,
172
+ prune: J,
173
+ snapshotsCount: K,
160
174
  taskPending: r,
161
175
  close: () => f(!1)
162
176
  }
163
177
  ),
164
- C && /* @__PURE__ */ e(te, { planId: l, taskPending: r, actionInProgress: T, close: () => u(!1) }),
165
- I && /* @__PURE__ */ e(oe, { planId: l, taskPending: r, close: () => P(!1) }),
166
- v && /* @__PURE__ */ e(y, { plan: n, close: () => h(!1) }),
167
- b && /* @__PURE__ */ e(W, { planId: l, planMethod: n.method, sourceType: n.sourceType, close: () => g(!1) })
178
+ C && !l && /* @__PURE__ */ e(
179
+ re,
180
+ {
181
+ planId: s.id,
182
+ taskPending: r,
183
+ verificationData: s.verified,
184
+ storage: s.storage,
185
+ replicationStorages: (M = s.settings.replication) != null && M.enabled ? s.settings.replication.storages : [],
186
+ onClose: () => m(!1)
187
+ }
188
+ ),
189
+ b && /* @__PURE__ */ e(ae, { planId: i, taskPending: r, actionInProgress: A, close: () => u(!1) }),
190
+ U && /* @__PURE__ */ e(ne, { planId: i, taskPending: r, close: () => k(!1) }),
191
+ E && /* @__PURE__ */ e(v, { plan: s, close: () => g(!1) }),
192
+ R && /* @__PURE__ */ e(Z, { planId: i, planMethod: s.method, sourceType: s.sourceType, close: () => P(!1) })
168
193
  ] });
169
194
  }
170
195
  };
171
196
  export {
172
- ye as default
197
+ ze as default
173
198
  };
174
199
  //# sourceMappingURL=PlanSingle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanSingle.js","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useParams, useSearchParams } from 'react-router';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport EditPlan from '../../components/Plan/EditPlan/EditPlan';\r\nimport PlanLogs from '../../components/Plan/PlanLogs/PlanLogs';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport PlanStats from '../../components/Plan/PlanStats/PlanStats';\r\nimport { usePlanSingleActions } from '../../hooks/usePlanSingleActions';\r\nimport classes from './PlanSingle.module.scss';\r\nimport NotFound from '../../components/common/NotFound/NotFound';\r\nimport PlanPruneModal from '../../components/Plan/PlanPruneModal/PlanPruneModal';\r\nimport PlanUnlockModal from '../../components/Plan/PlanUnlockModal/PlanUnlockModal';\r\nimport PlanRemoveModal from '../../components/Plan/PlanRemoveModal/PlanRemoveModal';\r\nimport PlanProgress from '../../components/Plan/PlanProgress/PlanProgress';\r\nimport PlanBackups from '../../components/Plan/PlanBackups/PlanBackups';\r\n\r\nconst PlanSingle = () => {\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const { id } = useParams();\r\n\r\n const EditPlanModal = useComponentOverride('EditPlan', EditPlan);\r\n\r\n const [searchParams] = useSearchParams();\r\n const isBackupPending = searchParams.get('pendingbackup') === '1';\r\n const isRestorePending = searchParams.get('pendingrestore') === '1';\r\n\r\n const {\r\n showDeleteModal,\r\n setShowDeleteModal,\r\n showEditModal,\r\n setShowEditModal,\r\n showPruneModal,\r\n setShowPruneModal,\r\n showLogsModal,\r\n setShowLogsModal,\r\n showUnlockModal,\r\n setShowUnlockModal,\r\n\r\n plan,\r\n isLoading,\r\n refetchPlan,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n taskPending,\r\n planError,\r\n actionInProgress,\r\n changeStatus,\r\n backupNow,\r\n } = usePlanSingleActions();\r\n\r\n // const errorMessage = planError?.message;\r\n const errorStatusCode = (planError as Error & { status?: number })?.status;\r\n if (!id || errorStatusCode === 404) {\r\n return <NotFound name=\"Plan\" link=\"/\" />;\r\n } else {\r\n if (isLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n const { isActive, method, title, description, stats, settings } = plan;\r\n const prune = settings.prune;\r\n const snapshotsCount = stats.snapshots?.length || 0;\r\n const isSync = method === 'sync';\r\n\r\n return (\r\n <div className={classes.planSingle}>\r\n <PageHeader\r\n title={\r\n <>\r\n {title}{' '}\r\n {description && (\r\n <span className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description}>\r\n <Icon type=\"note\" size={13} />\r\n </span>\r\n )}\r\n {!isActive && (\r\n <span className=\"label warn\">\r\n <Icon size={14} type={'pause'} color=\"#bf8d20\" /> Paused\r\n </span>\r\n )}\r\n </>\r\n }\r\n pageTitle={title}\r\n icon=\"plans\"\r\n rightSection={\r\n <>\r\n <div className={classes.planActions}>\r\n <button className={classes.actionBtn} onClick={backupNow}>\r\n <Icon size={14} type={isSync ? 'sync' : 'backup'} /> {isSync ? 'Sync' : 'Backup'} Now\r\n </button>\r\n <button className={`${classes.actionBtn} ${!isActive ? classes.actionBtnHighlight : ''}`} onClick={changeStatus}>\r\n <Icon size={14} type={isActive ? 'pause' : 'resume'} /> {isActive ? 'Pause' : 'Resume'}\r\n </button>\r\n <button className={classes.actionBtn} onClick={() => setShowEditModal(true)}>\r\n <Icon size={14} type=\"edit-settings\" /> Edit\r\n </button>\r\n <button className={`${classes.actionBtn} ${classes.actionMoreBtn}`} onClick={() => setShowMoreOptions(!showMoreOptions)}>\r\n <Icon size={14} type=\"dots-vertical\" />\r\n </button>\r\n\r\n {showMoreOptions && (\r\n <ul className={classes.moreOptions}>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowPruneModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"prune\" /> Clean Up\r\n </li>\r\n {!isSync && (\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowUnlockModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"unlock\" /> Unlock\r\n </li>\r\n )}\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowLogsModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"logs\" /> View Logs\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"trash\" /> Remove\r\n </li>\r\n </ul>\r\n )}\r\n </div>\r\n </>\r\n }\r\n />\r\n <div className={classes.planContent}>\r\n <PlanStats plan={plan} isSync={isSync} lastBackupItem={lastBackupItem} />\r\n <PlanProgress\r\n plan={plan}\r\n isBackupPending={isBackupPending}\r\n isRestorePending={isRestorePending}\r\n activeBackups={activeBackups}\r\n activeRestores={activeRestores}\r\n refetchPlan={refetchPlan}\r\n />\r\n <PlanBackups plan={plan} />\r\n </div>\r\n\r\n {/* Action Modals */}\r\n {showPruneModal && (\r\n <PlanPruneModal\r\n planId={id}\r\n method={plan.method}\r\n prune={prune}\r\n snapshotsCount={snapshotsCount}\r\n taskPending={taskPending}\r\n close={() => setShowPruneModal(false)}\r\n />\r\n )}\r\n {showDeleteModal && (\r\n <PlanRemoveModal planId={id} taskPending={taskPending} actionInProgress={actionInProgress} close={() => setShowDeleteModal(false)} />\r\n )}\r\n {showUnlockModal && <PlanUnlockModal planId={id} taskPending={taskPending} close={() => setShowUnlockModal(false)} />}\r\n {showEditModal && <EditPlanModal plan={plan} close={() => setShowEditModal(false)} />}\r\n {showLogsModal && <PlanLogs planId={id} planMethod={plan.method} sourceType={plan.sourceType} close={() => setShowLogsModal(false)} />}\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nexport default PlanSingle;\r\n"],"names":["PlanSingle","showMoreOptions","setShowMoreOptions","useState","id","useParams","EditPlanModal","useComponentOverride","EditPlan","searchParams","useSearchParams","isBackupPending","isRestorePending","showDeleteModal","setShowDeleteModal","showEditModal","setShowEditModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","showUnlockModal","setShowUnlockModal","plan","isLoading","refetchPlan","activeBackups","activeRestores","lastBackupItem","taskPending","planError","actionInProgress","changeStatus","backupNow","usePlanSingleActions","errorStatusCode","jsx","NotFound","Icon","isActive","method","title","description","stats","settings","prune","snapshotsCount","_a","isSync","jsxs","classes","PageHeader","Fragment","PlanStats","PlanProgress","PlanBackups","PlanPruneModal","PlanRemoveModal","PlanUnlockModal","PlanLogs"],"mappings":"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"}
1
+ {"version":3,"file":"PlanSingle.js","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useParams, useSearchParams } from 'react-router';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport EditPlan from '../../components/Plan/EditPlan/EditPlan';\r\nimport PlanLogs from '../../components/Plan/PlanLogs/PlanLogs';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport PlanStats from '../../components/Plan/PlanStats/PlanStats';\r\nimport { usePlanSingleActions } from '../../hooks/usePlanSingleActions';\r\nimport classes from './PlanSingle.module.scss';\r\nimport NotFound from '../../components/common/NotFound/NotFound';\r\nimport PlanPruneModal from '../../components/Plan/PlanPruneModal/PlanPruneModal';\r\nimport PlanUnlockModal from '../../components/Plan/PlanUnlockModal/PlanUnlockModal';\r\nimport PlanRemoveModal from '../../components/Plan/PlanRemoveModal/PlanRemoveModal';\r\nimport PlanProgress from '../../components/Plan/PlanProgress/PlanProgress';\r\nimport PlanBackups from '../../components/Plan/PlanBackups/PlanBackups';\r\nimport PlanIntegrity from '../../components/Plan/PlanIntegrity/PlanIntegrity';\r\n\r\nconst PlanSingle = () => {\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const [showIntegrityModal, setShowIntegrityModal] = useState(false);\r\n const { id } = useParams();\r\n\r\n const EditPlanModal = useComponentOverride('EditPlan', EditPlan);\r\n\r\n const [searchParams] = useSearchParams();\r\n const isBackupPending = searchParams.get('pendingbackup') === '1';\r\n const isRestorePending = searchParams.get('pendingrestore') === '1';\r\n\r\n const {\r\n showDeleteModal,\r\n setShowDeleteModal,\r\n showEditModal,\r\n setShowEditModal,\r\n showPruneModal,\r\n setShowPruneModal,\r\n showLogsModal,\r\n setShowLogsModal,\r\n showUnlockModal,\r\n setShowUnlockModal,\r\n\r\n plan,\r\n isLoading,\r\n refetchPlan,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n taskPending,\r\n planError,\r\n actionInProgress,\r\n changeStatus,\r\n backupNow,\r\n } = usePlanSingleActions();\r\n\r\n // const errorMessage = planError?.message;\r\n const errorStatusCode = (planError as Error & { status?: number })?.status;\r\n if (!id || errorStatusCode === 404) {\r\n return <NotFound name=\"Plan\" link=\"/\" />;\r\n } else {\r\n if (isLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n const { isActive, method, title, description, stats, settings } = plan;\r\n const prune = settings.prune;\r\n const snapshotsCount = stats.snapshots?.length || 0;\r\n const isSync = method === 'sync';\r\n\r\n return (\r\n <div className={classes.planSingle}>\r\n <PageHeader\r\n title={\r\n <>\r\n {title}{' '}\r\n {description && (\r\n <span className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description}>\r\n <Icon type=\"note\" size={13} />\r\n </span>\r\n )}\r\n {!isActive && (\r\n <span className=\"label warn\">\r\n <Icon size={14} type={'pause'} color=\"#bf8d20\" /> Paused\r\n </span>\r\n )}\r\n </>\r\n }\r\n pageTitle={title}\r\n icon=\"plans\"\r\n rightSection={\r\n <>\r\n <div className={classes.planActions}>\r\n <button className={classes.actionBtn} onClick={backupNow}>\r\n <Icon size={14} type={isSync ? 'sync' : 'backup'} /> {isSync ? 'Sync' : 'Backup'} Now\r\n </button>\r\n <button className={`${classes.actionBtn} ${!isActive ? classes.actionBtnHighlight : ''}`} onClick={changeStatus}>\r\n <Icon size={14} type={isActive ? 'pause' : 'resume'} /> {isActive ? 'Pause' : 'Resume'}\r\n </button>\r\n <button className={classes.actionBtn} onClick={() => setShowEditModal(true)}>\r\n <Icon size={14} type=\"edit-settings\" /> Edit\r\n </button>\r\n <button className={`${classes.actionBtn} ${classes.actionMoreBtn}`} onClick={() => setShowMoreOptions(!showMoreOptions)}>\r\n <Icon size={14} type=\"dots-vertical\" />\r\n </button>\r\n\r\n {showMoreOptions && (\r\n <ul className={classes.moreOptions}>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowPruneModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"prune\" /> Clean Up\r\n </li>\r\n {!isSync && (\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowUnlockModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"unlock\" /> Unlock\r\n </li>\r\n )}\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowIntegrityModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"integrity\" /> Check Integrity\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowLogsModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"logs\" /> View Logs\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"trash\" /> Remove\r\n </li>\r\n </ul>\r\n )}\r\n </div>\r\n </>\r\n }\r\n />\r\n <div className={classes.planContent}>\r\n <PlanStats plan={plan} isSync={isSync} lastBackupItem={lastBackupItem} />\r\n <PlanProgress\r\n plan={plan}\r\n isBackupPending={isBackupPending}\r\n isRestorePending={isRestorePending}\r\n activeBackups={activeBackups}\r\n activeRestores={activeRestores}\r\n refetchPlan={refetchPlan}\r\n />\r\n <PlanBackups plan={plan} />\r\n </div>\r\n\r\n {/* Action Modals */}\r\n {showPruneModal && (\r\n <PlanPruneModal\r\n planId={id}\r\n method={plan.method}\r\n prune={prune}\r\n snapshotsCount={snapshotsCount}\r\n taskPending={taskPending}\r\n close={() => setShowPruneModal(false)}\r\n />\r\n )}\r\n {showIntegrityModal && !isSync && (\r\n <PlanIntegrity\r\n planId={plan.id}\r\n taskPending={taskPending}\r\n verificationData={plan.verified}\r\n storage={plan.storage}\r\n replicationStorages={plan.settings.replication?.enabled ? plan.settings.replication.storages : []}\r\n onClose={() => setShowIntegrityModal(false)}\r\n />\r\n )}\r\n {showDeleteModal && (\r\n <PlanRemoveModal planId={id} taskPending={taskPending} actionInProgress={actionInProgress} close={() => setShowDeleteModal(false)} />\r\n )}\r\n {showUnlockModal && <PlanUnlockModal planId={id} taskPending={taskPending} close={() => setShowUnlockModal(false)} />}\r\n {showEditModal && <EditPlanModal plan={plan} close={() => setShowEditModal(false)} />}\r\n {showLogsModal && <PlanLogs planId={id} planMethod={plan.method} sourceType={plan.sourceType} close={() => setShowLogsModal(false)} />}\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nexport default PlanSingle;\r\n"],"names":["PlanSingle","showMoreOptions","setShowMoreOptions","useState","showIntegrityModal","setShowIntegrityModal","id","useParams","EditPlanModal","useComponentOverride","EditPlan","searchParams","useSearchParams","isBackupPending","isRestorePending","showDeleteModal","setShowDeleteModal","showEditModal","setShowEditModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","showUnlockModal","setShowUnlockModal","plan","isLoading","refetchPlan","activeBackups","activeRestores","lastBackupItem","taskPending","planError","actionInProgress","changeStatus","backupNow","usePlanSingleActions","errorStatusCode","jsx","NotFound","Icon","isActive","method","title","description","stats","settings","prune","snapshotsCount","_a","isSync","jsxs","classes","PageHeader","Fragment","PlanStats","PlanProgress","PlanBackups","PlanPruneModal","PlanIntegrity","_b","PlanRemoveModal","PlanUnlockModal","PlanLogs"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAMA,KAAa,MAAM;;AACtB,QAAM,CAACC,GAAiBC,CAAkB,IAAIC,EAAS,EAAK,GACtD,CAACC,GAAoBC,CAAqB,IAAIF,EAAS,EAAK,GAC5D,EAAE,IAAAG,EAAA,IAAOC,EAAA,GAETC,IAAgBC,EAAqB,YAAYC,CAAQ,GAEzD,CAACC,CAAY,IAAIC,EAAA,GACjBC,IAAkBF,EAAa,IAAI,eAAe,MAAM,KACxDG,IAAmBH,EAAa,IAAI,gBAAgB,MAAM,KAE1D;AAAA,IACH,iBAAAI;AAAA,IACA,oBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,oBAAAC;AAAA,IAEA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,IACCC,GAAA,GAGEC,IAAmBL,KAAA,gBAAAA,EAA2C;AACpE,MAAI,CAAC1B,KAAM+B,MAAoB;AAC5B,WAAO,gBAAAC,EAACC,IAAA,EAAS,MAAK,QAAO,MAAK,KAAI;AAClC;AACJ,QAAIb;AACD,aACG,gBAAAY,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAA,gBAAAA,EAACE,KAAK,MAAM,IAAI,MAAK,UAAA,CAAU,EAAA,CAClC;AAIN,UAAM,EAAE,UAAAC,GAAU,QAAAC,GAAQ,OAAAC,GAAO,aAAAC,GAAa,OAAAC,GAAO,UAAAC,MAAarB,GAC5DsB,IAAQD,EAAS,OACjBE,MAAiBC,IAAAJ,EAAM,cAAN,gBAAAI,EAAiB,WAAU,GAC5CC,IAASR,MAAW;AAE1B,WACG,gBAAAS,EAAC,OAAA,EAAI,WAAWC,EAAQ,YACrB,UAAA;AAAA,MAAA,gBAAAd;AAAA,QAACe;AAAA,QAAA;AAAA,UACE,OACG,gBAAAF,EAAAG,GAAA,EACI,UAAA;AAAA,YAAAX;AAAA,YAAO;AAAA,YACPC,KACE,gBAAAN,EAAC,QAAA,EAAK,WAAWc,EAAQ,iBAAiB,mBAAgB,cAAa,wBAAsBR,GAC1F,4BAACJ,GAAA,EAAK,MAAK,QAAO,MAAM,IAAI,GAC/B;AAAA,YAEF,CAACC,KACC,gBAAAU,EAAC,QAAA,EAAK,WAAU,cACb,UAAA;AAAA,cAAA,gBAAAb,EAACE,KAAK,MAAM,IAAI,MAAM,SAAS,OAAM,WAAU;AAAA,cAAE;AAAA,YAAA,EAAA,CACpD;AAAA,UAAA,GAEN;AAAA,UAEH,WAAWG;AAAA,UACX,MAAK;AAAA,UACL,cACG,gBAAAL,EAAAgB,GAAA,EACG,UAAA,gBAAAH,EAAC,OAAA,EAAI,WAAWC,EAAQ,aACrB,UAAA;AAAA,YAAA,gBAAAD,EAAC,UAAA,EAAO,WAAWC,EAAQ,WAAW,SAASjB,GAC5C,UAAA;AAAA,cAAA,gBAAAG,EAACE,KAAK,MAAM,IAAI,MAAMU,IAAS,SAAS,UAAU;AAAA,cAAE;AAAA,cAAEA,IAAS,SAAS;AAAA,cAAS;AAAA,YAAA,GACpF;AAAA,YACA,gBAAAC,EAAC,UAAA,EAAO,WAAW,GAAGC,EAAQ,SAAS,IAAKX,IAAwC,KAA7BW,EAAQ,kBAAuB,IAAI,SAASlB,GAChG,UAAA;AAAA,cAAA,gBAAAI,EAACE,KAAK,MAAM,IAAI,MAAMC,IAAW,UAAU,UAAU;AAAA,cAAE;AAAA,cAAEA,IAAW,UAAU;AAAA,YAAA,GACjF;AAAA,YACA,gBAAAU,EAAC,YAAO,WAAWC,EAAQ,WAAW,SAAS,MAAMlC,EAAiB,EAAI,GACvE,UAAA;AAAA,cAAA,gBAAAoB,EAACE,GAAA,EAAK,MAAM,IAAI,MAAK,iBAAgB;AAAA,cAAE;AAAA,YAAA,GAC1C;AAAA,YACA,gBAAAF,EAAC,YAAO,WAAW,GAAGc,EAAQ,SAAS,IAAIA,EAAQ,aAAa,IAAI,SAAS,MAAMlD,EAAmB,CAACD,CAAe,GACnH,UAAA,gBAAAqC,EAACE,KAAK,MAAM,IAAI,MAAK,gBAAA,CAAgB,EAAA,CACxC;AAAA,YAECvC,KACE,gBAAAkD,EAAC,MAAA,EAAG,WAAWC,EAAQ,aACpB,UAAA;AAAA,cAAA,gBAAAD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACE,WAAWC,EAAQ;AAAA,kBACnB,SAAS,MAAM;AACZ,oBAAAhC,EAAkB,EAAI,GACtBlB,EAAmB,EAAK;AAAA,kBAC3B;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAoC,EAACE,GAAA,EAAK,MAAM,IAAI,MAAK,SAAQ;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEjC,CAACU,KACC,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACE,WAAWC,EAAQ;AAAA,kBACnB,SAAS,MAAM;AACZ,oBAAA5B,EAAmB,EAAI,GACvBtB,EAAmB,EAAK;AAAA,kBAC3B;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAoC,EAACE,GAAA,EAAK,MAAM,IAAI,MAAK,UAAS;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGtC,gBAAAW;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACE,WAAWC,EAAQ;AAAA,kBACnB,SAAS,MAAM;AACZ,oBAAA/C,EAAsB,EAAI,GAC1BH,EAAmB,EAAK;AAAA,kBAC3B;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAoC,EAACE,GAAA,EAAK,MAAM,IAAI,MAAK,aAAY;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEtC,gBAAAW;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACE,WAAWC,EAAQ;AAAA,kBACnB,SAAS,MAAM;AACZ,oBAAA9B,EAAiB,EAAI,GACrBpB,EAAmB,EAAK;AAAA,kBAC3B;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAoC,EAACE,GAAA,EAAK,MAAM,IAAI,MAAK,QAAO;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEjC,gBAAAW;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACE,WAAWC,EAAQ;AAAA,kBACnB,SAAS,MAAM;AACZ,oBAAApC,EAAmB,EAAI,GACvBd,EAAmB,EAAK;AAAA,kBAC3B;AAAA,kBAEA,UAAA;AAAA,oBAAA,gBAAAoC,EAACE,GAAA,EAAK,MAAM,IAAI,MAAK,SAAQ;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAClC,EAAA,CACH;AAAA,UAAA,EAAA,CAEN,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,MAGN,gBAAAW,EAAC,OAAA,EAAI,WAAWC,EAAQ,aACrB,UAAA;AAAA,QAAA,gBAAAd,EAACiB,IAAA,EAAU,MAAA9B,GAAY,QAAAyB,GAAgB,gBAAApB,EAAA,CAAgC;AAAA,QACvE,gBAAAQ;AAAA,UAACkB;AAAA,UAAA;AAAA,YACE,MAAA/B;AAAA,YACA,iBAAAZ;AAAA,YACA,kBAAAC;AAAA,YACA,eAAAc;AAAA,YACA,gBAAAC;AAAA,YACA,aAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAEH,gBAAAW,EAACmB,MAAY,MAAAhC,EAAA,CAAY;AAAA,MAAA,GAC5B;AAAA,MAGCN,KACE,gBAAAmB;AAAA,QAACoB;AAAA,QAAA;AAAA,UACE,QAAQpD;AAAA,UACR,QAAQmB,EAAK;AAAA,UACb,OAAAsB;AAAA,UACA,gBAAAC;AAAA,UACA,aAAAjB;AAAA,UACA,OAAO,MAAMX,EAAkB,EAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAGzChB,KAAsB,CAAC8C,KACrB,gBAAAZ;AAAA,QAACqB;AAAA,QAAA;AAAA,UACE,QAAQlC,EAAK;AAAA,UACb,aAAAM;AAAA,UACA,kBAAkBN,EAAK;AAAA,UACvB,SAASA,EAAK;AAAA,UACd,sBAAqBmC,IAAAnC,EAAK,SAAS,gBAAd,QAAAmC,EAA2B,UAAUnC,EAAK,SAAS,YAAY,WAAW,CAAA;AAAA,UAC/F,SAAS,MAAMpB,EAAsB,EAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAG/CU,KACE,gBAAAuB,EAACuB,IAAA,EAAgB,QAAQvD,GAAI,aAAAyB,GAA0B,kBAAAE,GAAoC,OAAO,MAAMjB,EAAmB,EAAK,EAAA,CAAG;AAAA,MAErIO,KAAmB,gBAAAe,EAACwB,IAAA,EAAgB,QAAQxD,GAAI,aAAAyB,GAA0B,OAAO,MAAMP,EAAmB,EAAK,EAAA,CAAG;AAAA,MAClHP,uBAAkBT,GAAA,EAAc,MAAAiB,GAAY,OAAO,MAAMP,EAAiB,EAAK,GAAG;AAAA,MAClFG,KAAiB,gBAAAiB,EAACyB,GAAA,EAAS,QAAQzD,GAAI,YAAYmB,EAAK,QAAQ,YAAYA,EAAK,YAAY,OAAO,MAAMH,EAAiB,EAAK,EAAA,CAAG;AAAA,IAAA,GACvI;AAAA,EAEN;AACH;"}
@@ -54,4 +54,10 @@ export declare function useDeleteReplicationStorage(): import("@tanstack/react-q
54
54
  removeData: boolean;
55
55
  replicationId?: string;
56
56
  }, unknown>;
57
+ export declare function checkPlanIntegrity({ planId }: {
58
+ planId: string;
59
+ }): Promise<any>;
60
+ export declare function useCheckPlanIntegrity(): import("@tanstack/react-query").UseMutationResult<any, Error, {
61
+ planId: string;
62
+ }, unknown>;
57
63
  //# sourceMappingURL=plans.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGxD,wBAAsB,WAAW,iBAYhC;AAED,wBAAgB,WAAW,+DAO1B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAiB7C;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,8DAQpC;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,gBAc/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,8DAO5C;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iBAsChD;AAED,wBAAgB,kBAAkB,oFAUjC;AAGD,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,gBAcxD;AAED,wBAAgB,aAAa,4FAU5B;AAGD,wBAAsB,UAAU,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,gBAelF;AAED,wBAAgB,aAAa;QAjByB,MAAM;UAAQ,OAAO,CAAC,IAAI,CAAC;YAgChF;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,gBAYnG;AAED,wBAAgB,aAAa;QAdoC,MAAM;sBAAoB,OAAO;YAuBjG;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAU/B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAU3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAU5B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAc3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAc5B;AAGD,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB,gBAatG;AAED,wBAAgB,8BAA8B;YAGC,MAAM;UAAQ,QAAQ,GAAG,SAAS;YAGhF;AAGD,wBAAsB,wBAAwB,CAAC,EAC5C,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,GACf,EAAE;IACA,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACzB,gBAaA;AAED,wBAAgB,2BAA2B;YApBhC,MAAM;eACH,MAAM;iBACJ,MAAM;gBACP,OAAO;oBACH,MAAM;YA+BxB"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGxD,wBAAsB,WAAW,iBAYhC;AAED,wBAAgB,WAAW,+DAO1B;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAiB7C;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,8DAQpC;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,gBAc/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,8DAO5C;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iBAsChD;AAED,wBAAgB,kBAAkB,oFAUjC;AAGD,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,gBAcxD;AAED,wBAAgB,aAAa,4FAU5B;AAGD,wBAAsB,UAAU,CAAC,aAAa,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,gBAelF;AAED,wBAAgB,aAAa;QAjByB,MAAM;UAAQ,OAAO,CAAC,IAAI,CAAC;YAgChF;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,gBAYnG;AAED,wBAAgB,aAAa;QAdoC,MAAM;sBAAoB,OAAO;YAuBjG;AAGD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAY7C;AAED,wBAAgB,gBAAgB,mFAU/B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAU3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAU5B;AAGD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,gBAYzC;AAED,wBAAgB,YAAY,mFAc3B;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,gBAY1C;AAED,wBAAgB,aAAa,mFAc5B;AAGD,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB,gBAatG;AAED,wBAAgB,8BAA8B;YAGC,MAAM;UAAQ,QAAQ,GAAG,SAAS;YAGhF;AAGD,wBAAsB,wBAAwB,CAAC,EAC5C,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,GACf,EAAE;IACA,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACzB,gBAaA;AAED,wBAAgB,2BAA2B;YApBhC,MAAM;eACH,MAAM;iBACJ,MAAM;gBACP,OAAO;oBACH,MAAM;YA+BxB;AAED,wBAAsB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,gBAatE;AAED,wBAAgB,qBAAqB;YAf0B,MAAM;YA4BpE"}