@plutonhq/core-backend 0.0.1

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 (840) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +202 -0
  3. package/README.md +1 -0
  4. package/dist/controllers/BackupController.d.ts +14 -0
  5. package/dist/controllers/BackupController.d.ts.map +1 -0
  6. package/dist/controllers/BackupController.js +1 -0
  7. package/dist/controllers/BackupController.js.map +1 -0
  8. package/dist/controllers/DeviceController.d.ts +14 -0
  9. package/dist/controllers/DeviceController.d.ts.map +1 -0
  10. package/dist/controllers/DeviceController.js +1 -0
  11. package/dist/controllers/DeviceController.js.map +1 -0
  12. package/dist/controllers/PlanController.d.ts +20 -0
  13. package/dist/controllers/PlanController.d.ts.map +1 -0
  14. package/dist/controllers/PlanController.js +1 -0
  15. package/dist/controllers/PlanController.js.map +1 -0
  16. package/dist/controllers/RestoreController.d.ts +15 -0
  17. package/dist/controllers/RestoreController.d.ts.map +1 -0
  18. package/dist/controllers/RestoreController.js +1 -0
  19. package/dist/controllers/RestoreController.js.map +1 -0
  20. package/dist/controllers/SettingsController.d.ts +13 -0
  21. package/dist/controllers/SettingsController.d.ts.map +1 -0
  22. package/dist/controllers/SettingsController.js +1 -0
  23. package/dist/controllers/SettingsController.js.map +1 -0
  24. package/dist/controllers/StorageController.d.ts +15 -0
  25. package/dist/controllers/StorageController.d.ts.map +1 -0
  26. package/dist/controllers/StorageController.js +1 -0
  27. package/dist/controllers/StorageController.js.map +1 -0
  28. package/dist/controllers/UserController.d.ts +7 -0
  29. package/dist/controllers/UserController.d.ts.map +1 -0
  30. package/dist/controllers/UserController.js +1 -0
  31. package/dist/controllers/UserController.js.map +1 -0
  32. package/dist/createApp.d.ts +5 -0
  33. package/dist/createApp.d.ts.map +1 -0
  34. package/dist/createApp.js +1 -0
  35. package/dist/createApp.js.map +1 -0
  36. package/dist/db/index.d.ts +1758 -0
  37. package/dist/db/index.d.ts.map +1 -0
  38. package/dist/db/index.js +1 -0
  39. package/dist/db/index.js.map +1 -0
  40. package/dist/db/migrate.d.ts +2 -0
  41. package/dist/db/migrate.d.ts.map +1 -0
  42. package/dist/db/migrate.js +1 -0
  43. package/dist/db/migrate.js.map +1 -0
  44. package/dist/db/schema/backups.d.ts +1702 -0
  45. package/dist/db/schema/backups.d.ts.map +1 -0
  46. package/dist/db/schema/backups.js +1 -0
  47. package/dist/db/schema/backups.js.map +1 -0
  48. package/dist/db/schema/devices.d.ts +1424 -0
  49. package/dist/db/schema/devices.d.ts.map +1 -0
  50. package/dist/db/schema/devices.js +1 -0
  51. package/dist/db/schema/devices.js.map +1 -0
  52. package/dist/db/schema/plans.d.ts +1280 -0
  53. package/dist/db/schema/plans.d.ts.map +1 -0
  54. package/dist/db/schema/plans.js +1 -0
  55. package/dist/db/schema/plans.js.map +1 -0
  56. package/dist/db/schema/restores.d.ts +1354 -0
  57. package/dist/db/schema/restores.d.ts.map +1 -0
  58. package/dist/db/schema/restores.js +1 -0
  59. package/dist/db/schema/restores.js.map +1 -0
  60. package/dist/db/schema/settings.d.ts +373 -0
  61. package/dist/db/schema/settings.d.ts.map +1 -0
  62. package/dist/db/schema/settings.js +1 -0
  63. package/dist/db/schema/settings.js.map +1 -0
  64. package/dist/db/schema/storages.d.ts +763 -0
  65. package/dist/db/schema/storages.d.ts.map +1 -0
  66. package/dist/db/schema/storages.js +1 -0
  67. package/dist/db/schema/storages.js.map +1 -0
  68. package/dist/index.d.ts +6 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +1 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/jobs/JobProcessor.d.ts +64 -0
  73. package/dist/jobs/JobProcessor.d.ts.map +1 -0
  74. package/dist/jobs/JobProcessor.js +1 -0
  75. package/dist/jobs/JobProcessor.js.map +1 -0
  76. package/dist/jobs/JobQueue.d.ts +62 -0
  77. package/dist/jobs/JobQueue.d.ts.map +1 -0
  78. package/dist/jobs/JobQueue.js +1 -0
  79. package/dist/jobs/JobQueue.js.map +1 -0
  80. package/dist/jobs/SystemTaskManager.d.ts +26 -0
  81. package/dist/jobs/SystemTaskManager.d.ts.map +1 -0
  82. package/dist/jobs/SystemTaskManager.js +1 -0
  83. package/dist/jobs/SystemTaskManager.js.map +1 -0
  84. package/dist/jobs/index.d.ts +1 -0
  85. package/dist/jobs/index.d.ts.map +1 -0
  86. package/dist/jobs/index.js +1 -0
  87. package/dist/jobs/index.js.map +1 -0
  88. package/dist/jobs/systemJobs.d.ts +3 -0
  89. package/dist/jobs/systemJobs.d.ts.map +1 -0
  90. package/dist/jobs/systemJobs.js +1 -0
  91. package/dist/jobs/systemJobs.js.map +1 -0
  92. package/dist/jobs/tasks/AbstractTask.d.ts +6 -0
  93. package/dist/jobs/tasks/AbstractTask.d.ts.map +1 -0
  94. package/dist/jobs/tasks/AbstractTask.js +1 -0
  95. package/dist/jobs/tasks/AbstractTask.js.map +1 -0
  96. package/dist/jobs/tasks/BackupTask.d.ts +10 -0
  97. package/dist/jobs/tasks/BackupTask.d.ts.map +1 -0
  98. package/dist/jobs/tasks/BackupTask.js +1 -0
  99. package/dist/jobs/tasks/BackupTask.js.map +1 -0
  100. package/dist/jobs/tasks/CleanDownloadsTask.d.ts +7 -0
  101. package/dist/jobs/tasks/CleanDownloadsTask.d.ts.map +1 -0
  102. package/dist/jobs/tasks/CleanDownloadsTask.js +1 -0
  103. package/dist/jobs/tasks/CleanDownloadsTask.js.map +1 -0
  104. package/dist/jobs/tasks/PruneDatabaseTask.d.ts +1 -0
  105. package/dist/jobs/tasks/PruneDatabaseTask.d.ts.map +1 -0
  106. package/dist/jobs/tasks/PruneDatabaseTask.js +1 -0
  107. package/dist/jobs/tasks/PruneDatabaseTask.js.map +1 -0
  108. package/dist/jobs/tasks/RestoreTask.d.ts +10 -0
  109. package/dist/jobs/tasks/RestoreTask.d.ts.map +1 -0
  110. package/dist/jobs/tasks/RestoreTask.js +1 -0
  111. package/dist/jobs/tasks/RestoreTask.js.map +1 -0
  112. package/dist/jobs/tasks/UpdateDevicesTask.d.ts +1 -0
  113. package/dist/jobs/tasks/UpdateDevicesTask.d.ts.map +1 -0
  114. package/dist/jobs/tasks/UpdateDevicesTask.js +1 -0
  115. package/dist/jobs/tasks/UpdateDevicesTask.js.map +1 -0
  116. package/dist/managers/BaseBackupManager.d.ts +93 -0
  117. package/dist/managers/BaseBackupManager.d.ts.map +1 -0
  118. package/dist/managers/BaseBackupManager.js +1 -0
  119. package/dist/managers/BaseBackupManager.js.map +1 -0
  120. package/dist/managers/BaseRestoreManager.d.ts +24 -0
  121. package/dist/managers/BaseRestoreManager.d.ts.map +1 -0
  122. package/dist/managers/BaseRestoreManager.js +1 -0
  123. package/dist/managers/BaseRestoreManager.js.map +1 -0
  124. package/dist/managers/BaseSnapshotManager.d.ts +36 -0
  125. package/dist/managers/BaseSnapshotManager.d.ts.map +1 -0
  126. package/dist/managers/BaseSnapshotManager.js +1 -0
  127. package/dist/managers/BaseSnapshotManager.js.map +1 -0
  128. package/dist/managers/BaseStorageManager.d.ts +16 -0
  129. package/dist/managers/BaseStorageManager.d.ts.map +1 -0
  130. package/dist/managers/BaseStorageManager.js +1 -0
  131. package/dist/managers/BaseStorageManager.js.map +1 -0
  132. package/dist/managers/BaseSystemManager.d.ts +86 -0
  133. package/dist/managers/BaseSystemManager.d.ts.map +1 -0
  134. package/dist/managers/BaseSystemManager.js +1 -0
  135. package/dist/managers/BaseSystemManager.js.map +1 -0
  136. package/dist/managers/CronManager.d.ts +35 -0
  137. package/dist/managers/CronManager.d.ts.map +1 -0
  138. package/dist/managers/CronManager.js +1 -0
  139. package/dist/managers/CronManager.js.map +1 -0
  140. package/dist/managers/ProcessManager.d.ts +9 -0
  141. package/dist/managers/ProcessManager.d.ts.map +1 -0
  142. package/dist/managers/ProcessManager.js +1 -0
  143. package/dist/managers/ProcessManager.js.map +1 -0
  144. package/dist/managers/ProgressManager.d.ts +85 -0
  145. package/dist/managers/ProgressManager.d.ts.map +1 -0
  146. package/dist/managers/ProgressManager.js +1 -0
  147. package/dist/managers/ProgressManager.js.map +1 -0
  148. package/dist/managers/RestoreStatsManager.d.ts +9 -0
  149. package/dist/managers/RestoreStatsManager.d.ts.map +1 -0
  150. package/dist/managers/RestoreStatsManager.js +1 -0
  151. package/dist/managers/RestoreStatsManager.js.map +1 -0
  152. package/dist/managers/SecurityKeyManager.d.ts +16 -0
  153. package/dist/managers/SecurityKeyManager.d.ts.map +1 -0
  154. package/dist/managers/SecurityKeyManager.js +1 -0
  155. package/dist/managers/SecurityKeyManager.js.map +1 -0
  156. package/dist/managers/handlers/BackupHandler.d.ts +124 -0
  157. package/dist/managers/handlers/BackupHandler.d.ts.map +1 -0
  158. package/dist/managers/handlers/BackupHandler.js +1 -0
  159. package/dist/managers/handlers/BackupHandler.js.map +1 -0
  160. package/dist/managers/handlers/DownloadHandler.d.ts +13 -0
  161. package/dist/managers/handlers/DownloadHandler.d.ts.map +1 -0
  162. package/dist/managers/handlers/DownloadHandler.js +1 -0
  163. package/dist/managers/handlers/DownloadHandler.js.map +1 -0
  164. package/dist/managers/handlers/PruneHandler.d.ts +11 -0
  165. package/dist/managers/handlers/PruneHandler.d.ts.map +1 -0
  166. package/dist/managers/handlers/PruneHandler.js +1 -0
  167. package/dist/managers/handlers/PruneHandler.js.map +1 -0
  168. package/dist/managers/handlers/RestoreHandler.d.ts +67 -0
  169. package/dist/managers/handlers/RestoreHandler.d.ts.map +1 -0
  170. package/dist/managers/handlers/RestoreHandler.js +1 -0
  171. package/dist/managers/handlers/RestoreHandler.js.map +1 -0
  172. package/dist/managers/index.d.ts +3 -0
  173. package/dist/managers/index.d.ts.map +1 -0
  174. package/dist/managers/index.js +1 -0
  175. package/dist/managers/index.js.map +1 -0
  176. package/dist/middlewares/authMiddleware.d.ts +4 -0
  177. package/dist/middlewares/authMiddleware.d.ts.map +1 -0
  178. package/dist/middlewares/authMiddleware.js +1 -0
  179. package/dist/middlewares/authMiddleware.js.map +1 -0
  180. package/dist/middlewares/errorHandlerMiddleware.d.ts +5 -0
  181. package/dist/middlewares/errorHandlerMiddleware.d.ts.map +1 -0
  182. package/dist/middlewares/errorHandlerMiddleware.js +1 -0
  183. package/dist/middlewares/errorHandlerMiddleware.js.map +1 -0
  184. package/dist/middlewares/versionMiddleware.d.ts +6 -0
  185. package/dist/middlewares/versionMiddleware.d.ts.map +1 -0
  186. package/dist/middlewares/versionMiddleware.js +1 -0
  187. package/dist/middlewares/versionMiddleware.js.map +1 -0
  188. package/dist/notifications/BackupNotification.d.ts +24 -0
  189. package/dist/notifications/BackupNotification.d.ts.map +1 -0
  190. package/dist/notifications/BackupNotification.js +1 -0
  191. package/dist/notifications/BackupNotification.js.map +1 -0
  192. package/dist/notifications/BaseNotification.d.ts +20 -0
  193. package/dist/notifications/BaseNotification.d.ts.map +1 -0
  194. package/dist/notifications/BaseNotification.js +1 -0
  195. package/dist/notifications/BaseNotification.js.map +1 -0
  196. package/dist/notifications/NotificationChannel.d.ts +8 -0
  197. package/dist/notifications/NotificationChannel.d.ts.map +1 -0
  198. package/dist/notifications/NotificationChannel.js +1 -0
  199. package/dist/notifications/NotificationChannel.js.map +1 -0
  200. package/dist/notifications/NotificationManager.d.ts +8 -0
  201. package/dist/notifications/NotificationManager.d.ts.map +1 -0
  202. package/dist/notifications/NotificationManager.js +1 -0
  203. package/dist/notifications/NotificationManager.js.map +1 -0
  204. package/dist/notifications/channels/NotificationChannelResolver.d.ts +10 -0
  205. package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -0
  206. package/dist/notifications/channels/NotificationChannelResolver.js +1 -0
  207. package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -0
  208. package/dist/notifications/channels/SMTPChannel.d.ts +14 -0
  209. package/dist/notifications/channels/SMTPChannel.d.ts.map +1 -0
  210. package/dist/notifications/channels/SMTPChannel.js +1 -0
  211. package/dist/notifications/channels/SMTPChannel.js.map +1 -0
  212. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts +22 -0
  213. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -0
  214. package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -0
  215. package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -0
  216. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts +20 -0
  217. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -0
  218. package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -0
  219. package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -0
  220. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts +21 -0
  221. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -0
  222. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -0
  223. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -0
  224. package/dist/notifications/templates/email/test-email/TestEmailNotification.d.ts +14 -0
  225. package/dist/notifications/templates/email/test-email/TestEmailNotification.d.ts.map +1 -0
  226. package/dist/notifications/templates/email/test-email/TestEmailNotification.js +1 -0
  227. package/dist/notifications/templates/email/test-email/TestEmailNotification.js.map +1 -0
  228. package/dist/routes/backups.d.ts +4 -0
  229. package/dist/routes/backups.d.ts.map +1 -0
  230. package/dist/routes/backups.js +1 -0
  231. package/dist/routes/backups.js.map +1 -0
  232. package/dist/routes/devices.d.ts +4 -0
  233. package/dist/routes/devices.d.ts.map +1 -0
  234. package/dist/routes/devices.js +1 -0
  235. package/dist/routes/devices.js.map +1 -0
  236. package/dist/routes/health.d.ts +3 -0
  237. package/dist/routes/health.d.ts.map +1 -0
  238. package/dist/routes/health.js +1 -0
  239. package/dist/routes/health.js.map +1 -0
  240. package/dist/routes/index.d.ts +9 -0
  241. package/dist/routes/index.d.ts.map +1 -0
  242. package/dist/routes/index.js +1 -0
  243. package/dist/routes/index.js.map +1 -0
  244. package/dist/routes/plans.d.ts +4 -0
  245. package/dist/routes/plans.d.ts.map +1 -0
  246. package/dist/routes/plans.js +1 -0
  247. package/dist/routes/plans.js.map +1 -0
  248. package/dist/routes/restores.d.ts +4 -0
  249. package/dist/routes/restores.d.ts.map +1 -0
  250. package/dist/routes/restores.js +1 -0
  251. package/dist/routes/restores.js.map +1 -0
  252. package/dist/routes/settings.d.ts +4 -0
  253. package/dist/routes/settings.d.ts.map +1 -0
  254. package/dist/routes/settings.js +1 -0
  255. package/dist/routes/settings.js.map +1 -0
  256. package/dist/routes/storages.d.ts +4 -0
  257. package/dist/routes/storages.d.ts.map +1 -0
  258. package/dist/routes/storages.js +1 -0
  259. package/dist/routes/storages.js.map +1 -0
  260. package/dist/routes/users.d.ts +4 -0
  261. package/dist/routes/users.d.ts.map +1 -0
  262. package/dist/routes/users.js +1 -0
  263. package/dist/routes/users.js.map +1 -0
  264. package/dist/services/BackupServices.d.ts +40 -0
  265. package/dist/services/BackupServices.d.ts.map +1 -0
  266. package/dist/services/BackupServices.js +1 -0
  267. package/dist/services/BackupServices.js.map +1 -0
  268. package/dist/services/ConfigService.d.ts +40 -0
  269. package/dist/services/ConfigService.d.ts.map +1 -0
  270. package/dist/services/ConfigService.js +1 -0
  271. package/dist/services/ConfigService.js.map +1 -0
  272. package/dist/services/DeviceService.d.ts +47 -0
  273. package/dist/services/DeviceService.d.ts.map +1 -0
  274. package/dist/services/DeviceService.js +1 -0
  275. package/dist/services/DeviceService.js.map +1 -0
  276. package/dist/services/PlanService.d.ts +71 -0
  277. package/dist/services/PlanService.d.ts.map +1 -0
  278. package/dist/services/PlanService.js +1 -0
  279. package/dist/services/PlanService.js.map +1 -0
  280. package/dist/services/RestoreService.d.ts +74 -0
  281. package/dist/services/RestoreService.d.ts.map +1 -0
  282. package/dist/services/RestoreService.js +1 -0
  283. package/dist/services/RestoreService.js.map +1 -0
  284. package/dist/services/SettingsService.d.ts +20 -0
  285. package/dist/services/SettingsService.d.ts.map +1 -0
  286. package/dist/services/SettingsService.js +1 -0
  287. package/dist/services/SettingsService.js.map +1 -0
  288. package/dist/services/StorageService.d.ts +34 -0
  289. package/dist/services/StorageService.d.ts.map +1 -0
  290. package/dist/services/StorageService.js +1 -0
  291. package/dist/services/StorageService.js.map +1 -0
  292. package/dist/services/events/BackupEventService.d.ts +32 -0
  293. package/dist/services/events/BackupEventService.d.ts.map +1 -0
  294. package/dist/services/events/BackupEventService.js +1 -0
  295. package/dist/services/events/BackupEventService.js.map +1 -0
  296. package/dist/services/events/RestoreEventService.d.ts +17 -0
  297. package/dist/services/events/RestoreEventService.d.ts.map +1 -0
  298. package/dist/services/events/RestoreEventService.js +1 -0
  299. package/dist/services/events/RestoreEventService.js.map +1 -0
  300. package/dist/services/listeners/BackupEventListener.d.ts +41 -0
  301. package/dist/services/listeners/BackupEventListener.d.ts.map +1 -0
  302. package/dist/services/listeners/BackupEventListener.js +1 -0
  303. package/dist/services/listeners/BackupEventListener.js.map +1 -0
  304. package/dist/services/listeners/DownloadEventListener.d.ts +12 -0
  305. package/dist/services/listeners/DownloadEventListener.d.ts.map +1 -0
  306. package/dist/services/listeners/DownloadEventListener.js +1 -0
  307. package/dist/services/listeners/DownloadEventListener.js.map +1 -0
  308. package/dist/services/listeners/RestoreEventListener.d.ts +19 -0
  309. package/dist/services/listeners/RestoreEventListener.d.ts.map +1 -0
  310. package/dist/services/listeners/RestoreEventListener.js +1 -0
  311. package/dist/services/listeners/RestoreEventListener.js.map +1 -0
  312. package/dist/stores/BackupStore.d.ts +16 -0
  313. package/dist/stores/BackupStore.d.ts.map +1 -0
  314. package/dist/stores/BackupStore.js +1 -0
  315. package/dist/stores/BackupStore.js.map +1 -0
  316. package/dist/stores/DeviceStore.d.ts +16 -0
  317. package/dist/stores/DeviceStore.d.ts.map +1 -0
  318. package/dist/stores/DeviceStore.js +1 -0
  319. package/dist/stores/DeviceStore.js.map +1 -0
  320. package/dist/stores/PlanStore.d.ts +42 -0
  321. package/dist/stores/PlanStore.d.ts.map +1 -0
  322. package/dist/stores/PlanStore.js +1 -0
  323. package/dist/stores/PlanStore.js.map +1 -0
  324. package/dist/stores/RestoreStore.d.ts +16 -0
  325. package/dist/stores/RestoreStore.d.ts.map +1 -0
  326. package/dist/stores/RestoreStore.js +1 -0
  327. package/dist/stores/RestoreStore.js.map +1 -0
  328. package/dist/stores/SettingsStore.d.ts +85 -0
  329. package/dist/stores/SettingsStore.d.ts.map +1 -0
  330. package/dist/stores/SettingsStore.js +1 -0
  331. package/dist/stores/SettingsStore.js.map +1 -0
  332. package/dist/stores/StorageStore.d.ts +16 -0
  333. package/dist/stores/StorageStore.d.ts.map +1 -0
  334. package/dist/stores/StorageStore.js +1 -0
  335. package/dist/stores/StorageStore.js.map +1 -0
  336. package/dist/strategies/backup/BackupStrategy.d.ts +55 -0
  337. package/dist/strategies/backup/BackupStrategy.d.ts.map +1 -0
  338. package/dist/strategies/backup/BackupStrategy.js +1 -0
  339. package/dist/strategies/backup/BackupStrategy.js.map +1 -0
  340. package/dist/strategies/backup/LocalStrategy.d.ts +57 -0
  341. package/dist/strategies/backup/LocalStrategy.d.ts.map +1 -0
  342. package/dist/strategies/backup/LocalStrategy.js +1 -0
  343. package/dist/strategies/backup/LocalStrategy.js.map +1 -0
  344. package/dist/strategies/backup/RemoteStrategy.d.ts +60 -0
  345. package/dist/strategies/backup/RemoteStrategy.d.ts.map +1 -0
  346. package/dist/strategies/backup/RemoteStrategy.js +1 -0
  347. package/dist/strategies/backup/RemoteStrategy.js.map +1 -0
  348. package/dist/strategies/backup/index.d.ts +4 -0
  349. package/dist/strategies/backup/index.d.ts.map +1 -0
  350. package/dist/strategies/backup/index.js +1 -0
  351. package/dist/strategies/backup/index.js.map +1 -0
  352. package/dist/strategies/restore/LocalStrategy.d.ts +27 -0
  353. package/dist/strategies/restore/LocalStrategy.d.ts.map +1 -0
  354. package/dist/strategies/restore/LocalStrategy.js +1 -0
  355. package/dist/strategies/restore/LocalStrategy.js.map +1 -0
  356. package/dist/strategies/restore/RemoteStrategy.d.ts +37 -0
  357. package/dist/strategies/restore/RemoteStrategy.d.ts.map +1 -0
  358. package/dist/strategies/restore/RemoteStrategy.js +1 -0
  359. package/dist/strategies/restore/RemoteStrategy.js.map +1 -0
  360. package/dist/strategies/restore/RestoreStrategy.d.ts +31 -0
  361. package/dist/strategies/restore/RestoreStrategy.d.ts.map +1 -0
  362. package/dist/strategies/restore/RestoreStrategy.js +1 -0
  363. package/dist/strategies/restore/RestoreStrategy.js.map +1 -0
  364. package/dist/strategies/restore/index.d.ts +4 -0
  365. package/dist/strategies/restore/index.d.ts.map +1 -0
  366. package/dist/strategies/restore/index.js +1 -0
  367. package/dist/strategies/restore/index.js.map +1 -0
  368. package/dist/strategies/snapshot/LocalStrategy.d.ts +35 -0
  369. package/dist/strategies/snapshot/LocalStrategy.d.ts.map +1 -0
  370. package/dist/strategies/snapshot/LocalStrategy.js +1 -0
  371. package/dist/strategies/snapshot/LocalStrategy.js.map +1 -0
  372. package/dist/strategies/snapshot/RemoteStrategy.d.ts +44 -0
  373. package/dist/strategies/snapshot/RemoteStrategy.d.ts.map +1 -0
  374. package/dist/strategies/snapshot/RemoteStrategy.js +1 -0
  375. package/dist/strategies/snapshot/RemoteStrategy.js.map +1 -0
  376. package/dist/strategies/snapshot/SnapshotStrategy.d.ts +47 -0
  377. package/dist/strategies/snapshot/SnapshotStrategy.d.ts.map +1 -0
  378. package/dist/strategies/snapshot/SnapshotStrategy.js +1 -0
  379. package/dist/strategies/snapshot/SnapshotStrategy.js.map +1 -0
  380. package/dist/strategies/snapshot/index.d.ts +4 -0
  381. package/dist/strategies/snapshot/index.d.ts.map +1 -0
  382. package/dist/strategies/snapshot/index.js +1 -0
  383. package/dist/strategies/snapshot/index.js.map +1 -0
  384. package/dist/strategies/system/LocalStrategy.d.ts +63 -0
  385. package/dist/strategies/system/LocalStrategy.d.ts.map +1 -0
  386. package/dist/strategies/system/LocalStrategy.js +1 -0
  387. package/dist/strategies/system/LocalStrategy.js.map +1 -0
  388. package/dist/strategies/system/RemoteStrategy.d.ts +67 -0
  389. package/dist/strategies/system/RemoteStrategy.d.ts.map +1 -0
  390. package/dist/strategies/system/RemoteStrategy.js +1 -0
  391. package/dist/strategies/system/RemoteStrategy.js.map +1 -0
  392. package/dist/strategies/system/SystemStrategy.d.ts +69 -0
  393. package/dist/strategies/system/SystemStrategy.d.ts.map +1 -0
  394. package/dist/strategies/system/SystemStrategy.js +1 -0
  395. package/dist/strategies/system/SystemStrategy.js.map +1 -0
  396. package/dist/strategies/system/index.d.ts +4 -0
  397. package/dist/strategies/system/index.d.ts.map +1 -0
  398. package/dist/strategies/system/index.js +1 -0
  399. package/dist/strategies/system/index.js.map +1 -0
  400. package/dist/types/backups.d.ts +68 -0
  401. package/dist/types/backups.d.ts.map +1 -0
  402. package/dist/types/backups.js +1 -0
  403. package/dist/types/backups.js.map +1 -0
  404. package/dist/types/devices.d.ts +205 -0
  405. package/dist/types/devices.d.ts.map +1 -0
  406. package/dist/types/devices.js +1 -0
  407. package/dist/types/devices.js.map +1 -0
  408. package/dist/types/events.d.ts +86 -0
  409. package/dist/types/events.d.ts.map +1 -0
  410. package/dist/types/events.js +1 -0
  411. package/dist/types/events.js.map +1 -0
  412. package/dist/types/global.d.ts +8 -0
  413. package/dist/types/global.d.ts.map +1 -0
  414. package/dist/types/global.js +1 -0
  415. package/dist/types/global.js.map +1 -0
  416. package/dist/types/notifications.d.ts +19 -0
  417. package/dist/types/notifications.d.ts.map +1 -0
  418. package/dist/types/notifications.js +1 -0
  419. package/dist/types/notifications.js.map +1 -0
  420. package/dist/types/plans.d.ts +219 -0
  421. package/dist/types/plans.d.ts.map +1 -0
  422. package/dist/types/plans.js +1 -0
  423. package/dist/types/plans.js.map +1 -0
  424. package/dist/types/rclone.d.ts +10 -0
  425. package/dist/types/rclone.d.ts.map +1 -0
  426. package/dist/types/rclone.js +1 -0
  427. package/dist/types/rclone.js.map +1 -0
  428. package/dist/types/restic.d.ts +63 -0
  429. package/dist/types/restic.d.ts.map +1 -0
  430. package/dist/types/restic.js +1 -0
  431. package/dist/types/restic.js.map +1 -0
  432. package/dist/types/restores.d.ts +54 -0
  433. package/dist/types/restores.d.ts.map +1 -0
  434. package/dist/types/restores.js +1 -0
  435. package/dist/types/restores.js.map +1 -0
  436. package/dist/types/settings.d.ts +87 -0
  437. package/dist/types/settings.d.ts.map +1 -0
  438. package/dist/types/settings.js +1 -0
  439. package/dist/types/settings.js.map +1 -0
  440. package/dist/types/source.d.ts +72 -0
  441. package/dist/types/source.d.ts.map +1 -0
  442. package/dist/types/source.js +1 -0
  443. package/dist/types/source.js.map +1 -0
  444. package/dist/types/strategy.d.ts +7 -0
  445. package/dist/types/strategy.d.ts.map +1 -0
  446. package/dist/types/strategy.js +1 -0
  447. package/dist/types/strategy.js.map +1 -0
  448. package/dist/utils/AppError.d.ts +37 -0
  449. package/dist/utils/AppError.d.ts.map +1 -0
  450. package/dist/utils/AppError.js +1 -0
  451. package/dist/utils/AppError.js.map +1 -0
  452. package/dist/utils/AppPaths.d.ts +36 -0
  453. package/dist/utils/AppPaths.d.ts.map +1 -0
  454. package/dist/utils/AppPaths.js +1 -0
  455. package/dist/utils/AppPaths.js.map +1 -0
  456. package/dist/utils/asyncHandler.d.ts +4 -0
  457. package/dist/utils/asyncHandler.d.ts.map +1 -0
  458. package/dist/utils/asyncHandler.js +1 -0
  459. package/dist/utils/asyncHandler.js.map +1 -0
  460. package/dist/utils/binaryPathResolver.d.ts +10 -0
  461. package/dist/utils/binaryPathResolver.d.ts.map +1 -0
  462. package/dist/utils/binaryPathResolver.js +1 -0
  463. package/dist/utils/binaryPathResolver.js.map +1 -0
  464. package/dist/utils/copyFiles.d.ts +12 -0
  465. package/dist/utils/copyFiles.d.ts.map +1 -0
  466. package/dist/utils/copyFiles.js +1 -0
  467. package/dist/utils/copyFiles.js.map +1 -0
  468. package/dist/utils/docker.d.ts +32 -0
  469. package/dist/utils/docker.d.ts.map +1 -0
  470. package/dist/utils/docker.js +1 -0
  471. package/dist/utils/docker.js.map +1 -0
  472. package/dist/utils/executeUserScript.d.ts +15 -0
  473. package/dist/utils/executeUserScript.d.ts.map +1 -0
  474. package/dist/utils/executeUserScript.js +1 -0
  475. package/dist/utils/executeUserScript.js.map +1 -0
  476. package/dist/utils/formatter.d.ts +39 -0
  477. package/dist/utils/formatter.d.ts.map +1 -0
  478. package/dist/utils/formatter.js +1 -0
  479. package/dist/utils/formatter.js.map +1 -0
  480. package/dist/utils/getBackupSourceFiles.d.ts +7 -0
  481. package/dist/utils/getBackupSourceFiles.d.ts.map +1 -0
  482. package/dist/utils/getBackupSourceFiles.js +1 -0
  483. package/dist/utils/getBackupSourceFiles.js.map +1 -0
  484. package/dist/utils/helpers.d.ts +35 -0
  485. package/dist/utils/helpers.d.ts.map +1 -0
  486. package/dist/utils/helpers.js +1 -0
  487. package/dist/utils/helpers.js.map +1 -0
  488. package/dist/utils/initSetup.d.ts +4 -0
  489. package/dist/utils/initSetup.d.ts.map +1 -0
  490. package/dist/utils/initSetup.js +1 -0
  491. package/dist/utils/initSetup.js.map +1 -0
  492. package/dist/utils/intervalToCron.d.ts +24 -0
  493. package/dist/utils/intervalToCron.d.ts.map +1 -0
  494. package/dist/utils/intervalToCron.js +1 -0
  495. package/dist/utils/intervalToCron.js.map +1 -0
  496. package/dist/utils/logger.d.ts +43 -0
  497. package/dist/utils/logger.d.ts.map +1 -0
  498. package/dist/utils/logger.js +1 -0
  499. package/dist/utils/logger.js.map +1 -0
  500. package/dist/utils/providers/_features.d.ts +648 -0
  501. package/dist/utils/providers/_features.d.ts.map +1 -0
  502. package/dist/utils/providers/_features.js +1 -0
  503. package/dist/utils/providers/_features.js.map +1 -0
  504. package/dist/utils/providers/_s3Options.d.ts +19 -0
  505. package/dist/utils/providers/_s3Options.d.ts.map +1 -0
  506. package/dist/utils/providers/_s3Options.js +1 -0
  507. package/dist/utils/providers/_s3Options.js.map +1 -0
  508. package/dist/utils/providers/arvan.d.ts +28 -0
  509. package/dist/utils/providers/arvan.d.ts.map +1 -0
  510. package/dist/utils/providers/arvan.js +1 -0
  511. package/dist/utils/providers/arvan.js.map +1 -0
  512. package/dist/utils/providers/azureblob.d.ts +30 -0
  513. package/dist/utils/providers/azureblob.d.ts.map +1 -0
  514. package/dist/utils/providers/azureblob.js +1 -0
  515. package/dist/utils/providers/azureblob.js.map +1 -0
  516. package/dist/utils/providers/azurefiles.d.ts +19 -0
  517. package/dist/utils/providers/azurefiles.d.ts.map +1 -0
  518. package/dist/utils/providers/azurefiles.js +1 -0
  519. package/dist/utils/providers/azurefiles.js.map +1 -0
  520. package/dist/utils/providers/b2.d.ts +30 -0
  521. package/dist/utils/providers/b2.d.ts.map +1 -0
  522. package/dist/utils/providers/b2.js +1 -0
  523. package/dist/utils/providers/b2.js.map +1 -0
  524. package/dist/utils/providers/boxCom.d.ts +30 -0
  525. package/dist/utils/providers/boxCom.d.ts.map +1 -0
  526. package/dist/utils/providers/boxCom.js +1 -0
  527. package/dist/utils/providers/boxCom.js.map +1 -0
  528. package/dist/utils/providers/ceph.d.ts +28 -0
  529. package/dist/utils/providers/ceph.d.ts.map +1 -0
  530. package/dist/utils/providers/ceph.js +1 -0
  531. package/dist/utils/providers/ceph.js.map +1 -0
  532. package/dist/utils/providers/dreamobjects.d.ts +44 -0
  533. package/dist/utils/providers/dreamobjects.d.ts.map +1 -0
  534. package/dist/utils/providers/dreamobjects.js +1 -0
  535. package/dist/utils/providers/dreamobjects.js.map +1 -0
  536. package/dist/utils/providers/dropbox.d.ts +39 -0
  537. package/dist/utils/providers/dropbox.d.ts.map +1 -0
  538. package/dist/utils/providers/dropbox.js +1 -0
  539. package/dist/utils/providers/dropbox.js.map +1 -0
  540. package/dist/utils/providers/fichier.d.ts +30 -0
  541. package/dist/utils/providers/fichier.d.ts.map +1 -0
  542. package/dist/utils/providers/fichier.js +1 -0
  543. package/dist/utils/providers/fichier.js.map +1 -0
  544. package/dist/utils/providers/filesCom.d.ts +21 -0
  545. package/dist/utils/providers/filesCom.d.ts.map +1 -0
  546. package/dist/utils/providers/filesCom.js +1 -0
  547. package/dist/utils/providers/filesCom.js.map +1 -0
  548. package/dist/utils/providers/ftp.d.ts +39 -0
  549. package/dist/utils/providers/ftp.d.ts.map +1 -0
  550. package/dist/utils/providers/ftp.js +1 -0
  551. package/dist/utils/providers/ftp.js.map +1 -0
  552. package/dist/utils/providers/gcs.d.ts +39 -0
  553. package/dist/utils/providers/gcs.d.ts.map +1 -0
  554. package/dist/utils/providers/gcs.js +1 -0
  555. package/dist/utils/providers/gcs.js.map +1 -0
  556. package/dist/utils/providers/gdrive.d.ts +39 -0
  557. package/dist/utils/providers/gdrive.d.ts.map +1 -0
  558. package/dist/utils/providers/gdrive.js +1 -0
  559. package/dist/utils/providers/gdrive.js.map +1 -0
  560. package/dist/utils/providers/gofile.d.ts +21 -0
  561. package/dist/utils/providers/gofile.d.ts.map +1 -0
  562. package/dist/utils/providers/gofile.js +1 -0
  563. package/dist/utils/providers/gofile.js.map +1 -0
  564. package/dist/utils/providers/gphotos.d.ts +39 -0
  565. package/dist/utils/providers/gphotos.d.ts.map +1 -0
  566. package/dist/utils/providers/gphotos.js +1 -0
  567. package/dist/utils/providers/gphotos.js.map +1 -0
  568. package/dist/utils/providers/hdfs.d.ts +21 -0
  569. package/dist/utils/providers/hdfs.d.ts.map +1 -0
  570. package/dist/utils/providers/hdfs.js +1 -0
  571. package/dist/utils/providers/hdfs.js.map +1 -0
  572. package/dist/utils/providers/hidrive.d.ts +39 -0
  573. package/dist/utils/providers/hidrive.d.ts.map +1 -0
  574. package/dist/utils/providers/hidrive.js +1 -0
  575. package/dist/utils/providers/hidrive.js.map +1 -0
  576. package/dist/utils/providers/http.d.ts +30 -0
  577. package/dist/utils/providers/http.d.ts.map +1 -0
  578. package/dist/utils/providers/http.js +1 -0
  579. package/dist/utils/providers/http.js.map +1 -0
  580. package/dist/utils/providers/ibmcos.d.ts +58 -0
  581. package/dist/utils/providers/ibmcos.d.ts.map +1 -0
  582. package/dist/utils/providers/ibmcos.js +1 -0
  583. package/dist/utils/providers/ibmcos.js.map +1 -0
  584. package/dist/utils/providers/idrive.d.ts +28 -0
  585. package/dist/utils/providers/idrive.d.ts.map +1 -0
  586. package/dist/utils/providers/idrive.js +1 -0
  587. package/dist/utils/providers/idrive.js.map +1 -0
  588. package/dist/utils/providers/internetarchive.d.ts +30 -0
  589. package/dist/utils/providers/internetarchive.d.ts.map +1 -0
  590. package/dist/utils/providers/internetarchive.js +1 -0
  591. package/dist/utils/providers/internetarchive.js.map +1 -0
  592. package/dist/utils/providers/ionos.d.ts +44 -0
  593. package/dist/utils/providers/ionos.d.ts.map +1 -0
  594. package/dist/utils/providers/ionos.js +1 -0
  595. package/dist/utils/providers/ionos.js.map +1 -0
  596. package/dist/utils/providers/jottacloud.d.ts +39 -0
  597. package/dist/utils/providers/jottacloud.d.ts.map +1 -0
  598. package/dist/utils/providers/jottacloud.js +1 -0
  599. package/dist/utils/providers/jottacloud.js.map +1 -0
  600. package/dist/utils/providers/koofr.d.ts +46 -0
  601. package/dist/utils/providers/koofr.d.ts.map +1 -0
  602. package/dist/utils/providers/koofr.js +1 -0
  603. package/dist/utils/providers/koofr.js.map +1 -0
  604. package/dist/utils/providers/leviia.d.ts +28 -0
  605. package/dist/utils/providers/leviia.d.ts.map +1 -0
  606. package/dist/utils/providers/leviia.js +1 -0
  607. package/dist/utils/providers/leviia.js.map +1 -0
  608. package/dist/utils/providers/liara.d.ts +28 -0
  609. package/dist/utils/providers/liara.d.ts.map +1 -0
  610. package/dist/utils/providers/liara.js +1 -0
  611. package/dist/utils/providers/liara.js.map +1 -0
  612. package/dist/utils/providers/linkbox.d.ts +21 -0
  613. package/dist/utils/providers/linkbox.d.ts.map +1 -0
  614. package/dist/utils/providers/linkbox.js +1 -0
  615. package/dist/utils/providers/linkbox.js.map +1 -0
  616. package/dist/utils/providers/linode.d.ts +44 -0
  617. package/dist/utils/providers/linode.d.ts.map +1 -0
  618. package/dist/utils/providers/linode.js +1 -0
  619. package/dist/utils/providers/linode.js.map +1 -0
  620. package/dist/utils/providers/local.d.ts +11 -0
  621. package/dist/utils/providers/local.d.ts.map +1 -0
  622. package/dist/utils/providers/local.js +1 -0
  623. package/dist/utils/providers/local.js.map +1 -0
  624. package/dist/utils/providers/lyvecloud.d.ts +44 -0
  625. package/dist/utils/providers/lyvecloud.d.ts.map +1 -0
  626. package/dist/utils/providers/lyvecloud.js +1 -0
  627. package/dist/utils/providers/lyvecloud.js.map +1 -0
  628. package/dist/utils/providers/magalu.d.ts +44 -0
  629. package/dist/utils/providers/magalu.d.ts.map +1 -0
  630. package/dist/utils/providers/magalu.js +1 -0
  631. package/dist/utils/providers/magalu.js.map +1 -0
  632. package/dist/utils/providers/mailru.d.ts +30 -0
  633. package/dist/utils/providers/mailru.d.ts.map +1 -0
  634. package/dist/utils/providers/mailru.js +1 -0
  635. package/dist/utils/providers/mailru.js.map +1 -0
  636. package/dist/utils/providers/mega.d.ts +30 -0
  637. package/dist/utils/providers/mega.d.ts.map +1 -0
  638. package/dist/utils/providers/mega.js +1 -0
  639. package/dist/utils/providers/mega.js.map +1 -0
  640. package/dist/utils/providers/minio.d.ts +28 -0
  641. package/dist/utils/providers/minio.d.ts.map +1 -0
  642. package/dist/utils/providers/minio.js +1 -0
  643. package/dist/utils/providers/minio.js.map +1 -0
  644. package/dist/utils/providers/netstorage.d.ts +21 -0
  645. package/dist/utils/providers/netstorage.d.ts.map +1 -0
  646. package/dist/utils/providers/netstorage.js +1 -0
  647. package/dist/utils/providers/netstorage.js.map +1 -0
  648. package/dist/utils/providers/obs.d.ts +44 -0
  649. package/dist/utils/providers/obs.d.ts.map +1 -0
  650. package/dist/utils/providers/obs.js +1 -0
  651. package/dist/utils/providers/obs.js.map +1 -0
  652. package/dist/utils/providers/onedrive.d.ts +46 -0
  653. package/dist/utils/providers/onedrive.d.ts.map +1 -0
  654. package/dist/utils/providers/onedrive.js +1 -0
  655. package/dist/utils/providers/onedrive.js.map +1 -0
  656. package/dist/utils/providers/opendrive.d.ts +21 -0
  657. package/dist/utils/providers/opendrive.d.ts.map +1 -0
  658. package/dist/utils/providers/opendrive.js +1 -0
  659. package/dist/utils/providers/opendrive.js.map +1 -0
  660. package/dist/utils/providers/oracle.d.ts +30 -0
  661. package/dist/utils/providers/oracle.d.ts.map +1 -0
  662. package/dist/utils/providers/oracle.js +1 -0
  663. package/dist/utils/providers/oracle.js.map +1 -0
  664. package/dist/utils/providers/oss.d.ts +58 -0
  665. package/dist/utils/providers/oss.d.ts.map +1 -0
  666. package/dist/utils/providers/oss.js +1 -0
  667. package/dist/utils/providers/oss.js.map +1 -0
  668. package/dist/utils/providers/outscale.d.ts +44 -0
  669. package/dist/utils/providers/outscale.d.ts.map +1 -0
  670. package/dist/utils/providers/outscale.js +1 -0
  671. package/dist/utils/providers/outscale.js.map +1 -0
  672. package/dist/utils/providers/pcloud.d.ts +30 -0
  673. package/dist/utils/providers/pcloud.d.ts.map +1 -0
  674. package/dist/utils/providers/pcloud.js +1 -0
  675. package/dist/utils/providers/pcloud.js.map +1 -0
  676. package/dist/utils/providers/petabox.d.ts +28 -0
  677. package/dist/utils/providers/petabox.d.ts.map +1 -0
  678. package/dist/utils/providers/petabox.js +1 -0
  679. package/dist/utils/providers/petabox.js.map +1 -0
  680. package/dist/utils/providers/pikpak.d.ts +30 -0
  681. package/dist/utils/providers/pikpak.d.ts.map +1 -0
  682. package/dist/utils/providers/pikpak.js +1 -0
  683. package/dist/utils/providers/pikpak.js.map +1 -0
  684. package/dist/utils/providers/pixeldrain.d.ts +21 -0
  685. package/dist/utils/providers/pixeldrain.d.ts.map +1 -0
  686. package/dist/utils/providers/pixeldrain.js +1 -0
  687. package/dist/utils/providers/pixeldrain.js.map +1 -0
  688. package/dist/utils/providers/premiumizeme.d.ts +30 -0
  689. package/dist/utils/providers/premiumizeme.d.ts.map +1 -0
  690. package/dist/utils/providers/premiumizeme.js +1 -0
  691. package/dist/utils/providers/premiumizeme.js.map +1 -0
  692. package/dist/utils/providers/protondrive.d.ts +30 -0
  693. package/dist/utils/providers/protondrive.d.ts.map +1 -0
  694. package/dist/utils/providers/protondrive.js +1 -0
  695. package/dist/utils/providers/protondrive.js.map +1 -0
  696. package/dist/utils/providers/putio.d.ts +30 -0
  697. package/dist/utils/providers/putio.d.ts.map +1 -0
  698. package/dist/utils/providers/putio.js +1 -0
  699. package/dist/utils/providers/putio.js.map +1 -0
  700. package/dist/utils/providers/qingstor.d.ts +30 -0
  701. package/dist/utils/providers/qingstor.d.ts.map +1 -0
  702. package/dist/utils/providers/qingstor.js +1 -0
  703. package/dist/utils/providers/qingstor.js.map +1 -0
  704. package/dist/utils/providers/qiniu.d.ts +58 -0
  705. package/dist/utils/providers/qiniu.d.ts.map +1 -0
  706. package/dist/utils/providers/qiniu.js +1 -0
  707. package/dist/utils/providers/qiniu.js.map +1 -0
  708. package/dist/utils/providers/quatrix.d.ts +30 -0
  709. package/dist/utils/providers/quatrix.d.ts.map +1 -0
  710. package/dist/utils/providers/quatrix.js +1 -0
  711. package/dist/utils/providers/quatrix.js.map +1 -0
  712. package/dist/utils/providers/r2.d.ts +28 -0
  713. package/dist/utils/providers/r2.d.ts.map +1 -0
  714. package/dist/utils/providers/r2.js +1 -0
  715. package/dist/utils/providers/r2.js.map +1 -0
  716. package/dist/utils/providers/rackcorp.d.ts +58 -0
  717. package/dist/utils/providers/rackcorp.d.ts.map +1 -0
  718. package/dist/utils/providers/rackcorp.js +1 -0
  719. package/dist/utils/providers/rackcorp.js.map +1 -0
  720. package/dist/utils/providers/rclone.d.ts +28 -0
  721. package/dist/utils/providers/rclone.d.ts.map +1 -0
  722. package/dist/utils/providers/rclone.js +1 -0
  723. package/dist/utils/providers/rclone.js.map +1 -0
  724. package/dist/utils/providers/s3.d.ts +51 -0
  725. package/dist/utils/providers/s3.d.ts.map +1 -0
  726. package/dist/utils/providers/s3.js +1 -0
  727. package/dist/utils/providers/s3.js.map +1 -0
  728. package/dist/utils/providers/scaleway.d.ts +58 -0
  729. package/dist/utils/providers/scaleway.d.ts.map +1 -0
  730. package/dist/utils/providers/scaleway.js +1 -0
  731. package/dist/utils/providers/scaleway.js.map +1 -0
  732. package/dist/utils/providers/seafile.d.ts +39 -0
  733. package/dist/utils/providers/seafile.d.ts.map +1 -0
  734. package/dist/utils/providers/seafile.js +1 -0
  735. package/dist/utils/providers/seafile.js.map +1 -0
  736. package/dist/utils/providers/seaweedfs.d.ts +28 -0
  737. package/dist/utils/providers/seaweedfs.d.ts.map +1 -0
  738. package/dist/utils/providers/seaweedfs.js +1 -0
  739. package/dist/utils/providers/seaweedfs.js.map +1 -0
  740. package/dist/utils/providers/selectel.d.ts +28 -0
  741. package/dist/utils/providers/selectel.d.ts.map +1 -0
  742. package/dist/utils/providers/selectel.js +1 -0
  743. package/dist/utils/providers/selectel.js.map +1 -0
  744. package/dist/utils/providers/sftp.d.ts +30 -0
  745. package/dist/utils/providers/sftp.d.ts.map +1 -0
  746. package/dist/utils/providers/sftp.js +1 -0
  747. package/dist/utils/providers/sftp.js.map +1 -0
  748. package/dist/utils/providers/sharefile.d.ts +30 -0
  749. package/dist/utils/providers/sharefile.d.ts.map +1 -0
  750. package/dist/utils/providers/sharefile.js +1 -0
  751. package/dist/utils/providers/sharefile.js.map +1 -0
  752. package/dist/utils/providers/sia.d.ts +21 -0
  753. package/dist/utils/providers/sia.d.ts.map +1 -0
  754. package/dist/utils/providers/sia.js +1 -0
  755. package/dist/utils/providers/sia.js.map +1 -0
  756. package/dist/utils/providers/smb.d.ts +30 -0
  757. package/dist/utils/providers/smb.d.ts.map +1 -0
  758. package/dist/utils/providers/smb.js +1 -0
  759. package/dist/utils/providers/smb.js.map +1 -0
  760. package/dist/utils/providers/spaces.d.ts +44 -0
  761. package/dist/utils/providers/spaces.d.ts.map +1 -0
  762. package/dist/utils/providers/spaces.js +1 -0
  763. package/dist/utils/providers/spaces.js.map +1 -0
  764. package/dist/utils/providers/storj.d.ts +36 -0
  765. package/dist/utils/providers/storj.d.ts.map +1 -0
  766. package/dist/utils/providers/storj.js +1 -0
  767. package/dist/utils/providers/storj.js.map +1 -0
  768. package/dist/utils/providers/sugarsync.d.ts +30 -0
  769. package/dist/utils/providers/sugarsync.d.ts.map +1 -0
  770. package/dist/utils/providers/sugarsync.js +1 -0
  771. package/dist/utils/providers/sugarsync.js.map +1 -0
  772. package/dist/utils/providers/swift.d.ts +46 -0
  773. package/dist/utils/providers/swift.d.ts.map +1 -0
  774. package/dist/utils/providers/swift.js +1 -0
  775. package/dist/utils/providers/swift.js.map +1 -0
  776. package/dist/utils/providers/synologyc2.d.ts +44 -0
  777. package/dist/utils/providers/synologyc2.d.ts.map +1 -0
  778. package/dist/utils/providers/synologyc2.js +1 -0
  779. package/dist/utils/providers/synologyc2.js.map +1 -0
  780. package/dist/utils/providers/tencent.d.ts +28 -0
  781. package/dist/utils/providers/tencent.d.ts.map +1 -0
  782. package/dist/utils/providers/tencent.js +1 -0
  783. package/dist/utils/providers/tencent.js.map +1 -0
  784. package/dist/utils/providers/ulozto.d.ts +21 -0
  785. package/dist/utils/providers/ulozto.d.ts.map +1 -0
  786. package/dist/utils/providers/ulozto.js +1 -0
  787. package/dist/utils/providers/ulozto.js.map +1 -0
  788. package/dist/utils/providers/wasabi.d.ts +58 -0
  789. package/dist/utils/providers/wasabi.d.ts.map +1 -0
  790. package/dist/utils/providers/wasabi.js +1 -0
  791. package/dist/utils/providers/wasabi.js.map +1 -0
  792. package/dist/utils/providers/webdav.d.ts +19 -0
  793. package/dist/utils/providers/webdav.d.ts.map +1 -0
  794. package/dist/utils/providers/webdav.js +1 -0
  795. package/dist/utils/providers/webdav.js.map +1 -0
  796. package/dist/utils/providers/yandex.d.ts +39 -0
  797. package/dist/utils/providers/yandex.d.ts.map +1 -0
  798. package/dist/utils/providers/yandex.js +1 -0
  799. package/dist/utils/providers/yandex.js.map +1 -0
  800. package/dist/utils/providers/zoho.d.ts +30 -0
  801. package/dist/utils/providers/zoho.d.ts.map +1 -0
  802. package/dist/utils/providers/zoho.js +1 -0
  803. package/dist/utils/providers/zoho.js.map +1 -0
  804. package/dist/utils/providers.d.ts +37 -0
  805. package/dist/utils/providers.d.ts.map +1 -0
  806. package/dist/utils/providers.js +1 -0
  807. package/dist/utils/providers.js.map +1 -0
  808. package/dist/utils/rclone/helpers.d.ts +6 -0
  809. package/dist/utils/rclone/helpers.d.ts.map +1 -0
  810. package/dist/utils/rclone/helpers.js +1 -0
  811. package/dist/utils/rclone/helpers.js.map +1 -0
  812. package/dist/utils/rclone/parsers.d.ts +5 -0
  813. package/dist/utils/rclone/parsers.d.ts.map +1 -0
  814. package/dist/utils/rclone/parsers.js +1 -0
  815. package/dist/utils/rclone/parsers.js.map +1 -0
  816. package/dist/utils/rclone/rclone.d.ts +2 -0
  817. package/dist/utils/rclone/rclone.d.ts.map +1 -0
  818. package/dist/utils/rclone/rclone.js +1 -0
  819. package/dist/utils/rclone/rclone.js.map +1 -0
  820. package/dist/utils/restic/helpers.d.ts +4 -0
  821. package/dist/utils/restic/helpers.d.ts.map +1 -0
  822. package/dist/utils/restic/helpers.js +1 -0
  823. package/dist/utils/restic/helpers.js.map +1 -0
  824. package/dist/utils/restic/restic.d.ts +15 -0
  825. package/dist/utils/restic/restic.d.ts.map +1 -0
  826. package/dist/utils/restic/restic.js +1 -0
  827. package/dist/utils/restic/restic.js.map +1 -0
  828. package/dist/utils/runCommand.d.ts +23 -0
  829. package/dist/utils/runCommand.d.ts.map +1 -0
  830. package/dist/utils/runCommand.js +1 -0
  831. package/dist/utils/runCommand.js.map +1 -0
  832. package/dist/utils/sanitizeStoragePath.d.ts +9 -0
  833. package/dist/utils/sanitizeStoragePath.d.ts.map +1 -0
  834. package/dist/utils/sanitizeStoragePath.js +1 -0
  835. package/dist/utils/sanitizeStoragePath.js.map +1 -0
  836. package/dist/utils/versions.d.ts +17 -0
  837. package/dist/utils/versions.d.ts.map +1 -0
  838. package/dist/utils/versions.js +1 -0
  839. package/dist/utils/versions.js.map +1 -0
  840. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseRestoreManager.js","sourceRoot":"","sources":["../../src/managers/BaseRestoreManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAC3C,cAAc,CAAiB;IACvC;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC5B,QAAgB,EAChB,SAAiB,EACjB,OAAuB,EACvB,SAAoD;QAEpD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACpB,QAAgB,EAChB,OAAuB;QAEvB,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC;QAEhC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC5B,MAAc,EACd,QAAgB,EAChB,OAAuB;QAEvB,IAAI,CAAC;YACJ,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClF,IAAI,OAAO,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACzF,0GAA0G;gBAC1G,6DAA6D;gBAC7D,iGAAiG;gBACjG,+DAA+D;gBAC/D,OAAO,aAAa,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,CAAC;QACF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE;aAC5B,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,SAAiB;QAC5D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO;gBACN,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,mBAAmB;aAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE;aAC5B,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,36 @@
1
+ import { EventEmitter } from 'events';
2
+ import { SnapShotFile } from '../types/restic';
3
+ export declare class BaseSnapshotManager extends EventEmitter {
4
+ private downloadHandler;
5
+ constructor();
6
+ listSnapshots(): Promise<string>;
7
+ downloadSnapshot(planId: string, backupId: string, snapShotPath: string, options: {
8
+ storagePath: string;
9
+ storageName: string;
10
+ encryption: boolean;
11
+ }): Promise<any>;
12
+ getSnapshotDownload(planId: string, backupId: string): Promise<any>;
13
+ cancelSnapshotDownload(planId: string, backupId: string): Promise<any>;
14
+ removeSnapshot(planId: string, backupId: string, options: {
15
+ storagePath: string;
16
+ storageName: string;
17
+ encryption: boolean;
18
+ planId: string;
19
+ }): Promise<{
20
+ success: boolean;
21
+ result: any;
22
+ stats?: false | {
23
+ total_size: number;
24
+ snapshots: string[];
25
+ };
26
+ }>;
27
+ getSnapshotFiles(backupId: string, options: {
28
+ storagePath: string;
29
+ storageName: string;
30
+ encryption: boolean;
31
+ }): Promise<{
32
+ success: boolean;
33
+ result: SnapShotFile[] | string;
34
+ }>;
35
+ }
36
+ //# sourceMappingURL=BaseSnapshotManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSnapshotManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,mBAAoB,SAAQ,YAAY;IACpD,OAAO,CAAC,eAAe,CAAkB;;IAOnC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GACxE,OAAO,CAAC,GAAG,CAAC;IAqBT,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAenE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAetE,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACxF,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,CAAC,EAAE,KAAK,GAAG;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC5D,CAAC;IA+BI,gBAAgB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GACxE,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;KAAE,CAAC;CAgDjE"}
@@ -0,0 +1 @@
1
+ import{EventEmitter}from"events";import{getBackupPlanStats,getSnapshotByTag,runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath,resticPathToWindows}from"../utils/restic/helpers";import{DownloadHandler}from"./handlers/DownloadHandler";import{configService}from"../services/ConfigService";export class BaseSnapshotManager extends EventEmitter{downloadHandler;constructor(){super(),this.downloadHandler=new DownloadHandler(this)}async listSnapshots(){return runResticCommand(["snapshots","--json"])}async downloadSnapshot(planId,backupId,snapShotPath,options){try{const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);return success&&"string"!=typeof result?(this.downloadHandler.download(planId,backupId,result.id,options),{success:!0,result:"Generating Download.."}):{success:success,result:result}}catch(error){return{success:!1,result:error?.message||""}}}async getSnapshotDownload(planId,backupId){try{return{success:!0,result:await this.downloadHandler.get(planId,backupId)}}catch(error){return{success:!1,result:error?.message||""}}}async cancelSnapshotDownload(planId,backupId){try{return{success:await this.downloadHandler.cancel(planId,backupId),result:"Download cancelled"}}catch(error){return{success:!1,result:error?.message||""}}}async removeSnapshot(planId,backupId,options){try{const{storageName:storageName,storagePath:storagePath,encryption:encryption,planId:planId}=options,repoPassword=encryption?process.env.ENCRYPTION_KEY:"",repoPath=generateResticRepoPath(storageName,storagePath||"");let snapshotId="";const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);if(!success||"string"==typeof result)return{success:success,result:result};snapshotId=result.id;const output=await runResticCommand(["-r",repoPath,"forget",snapshotId,"--json"],{RESTIC_PASSWORD:repoPassword});return{success:!0,result:output,stats:await getBackupPlanStats(planId,storageName,storagePath,encryption)}}catch(error){return{success:!1,result:error?.message||""}}}async getSnapshotFiles(backupId,options){try{let snapshotId;const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);if(!success||"string"==typeof result)return{success:!1,result:"Snapshot not found"};snapshotId=result.id;const{storageName:storageName,storagePath:storagePath,encryption:encryption}=options,repoPassword=encryption?configService.config.ENCRYPTION_KEY:"",repoPath=generateResticRepoPath(storageName,storagePath||""),outputJSON=(await runResticCommand(["ls","-r",repoPath,snapshotId,"--json","--long"],{RESTIC_PASSWORD:repoPassword})).split(/\r?\n/).filter(line=>""!==line.trim()).map(item=>JSON.parse(item));return{success:!0,result:outputJSON.filter(item=>void 0!==item.path).map(item=>({name:item.name,path:item.path,srcPath:"win32"===process.platform?resticPathToWindows(item.path):item.path.replace(/\\/g,"/"),type:item.type,isDirectory:"dir"===item.type,size:item.size||0,modifiedAt:item.mtime,owner:"",permissions:item.permissions,isAvailable:!0}))}}catch(error){return{success:!1,result:error?.message||"Failed to get snapshot files"}}}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSnapshotManager.js","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class BaseStorageManager {
2
+ setupRclone(): Promise<void>;
3
+ createRemote(type: string, name: string, authType: string, credentials: Record<string, string>, settings?: Record<string, string>): Promise<any>;
4
+ updateRemote(name: string, newSettings: Record<string, string | number | boolean>, oldSettings: Record<string, string | number | boolean>): Promise<any>;
5
+ deleteRemote(name: string): Promise<any>;
6
+ getRemoteConfig(name: string): Promise<any>;
7
+ verifyRemote(name: string): Promise<{
8
+ success: boolean;
9
+ result: string;
10
+ }>;
11
+ listRemotes(): Promise<any>;
12
+ browseRemote(remote: string, path?: string): Promise<any>;
13
+ getRemoteFileContent(remote: string, path: string): Promise<any>;
14
+ getDownloadLink(remote: string, path: string): Promise<any>;
15
+ }
16
+ //# sourceMappingURL=BaseStorageManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStorageManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseStorageManager.ts"],"names":[],"mappings":"AAGA,qBAAa,kBAAkB;IACxB,WAAW;IAaX,YAAY,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,GAAG,CAAC;IA0ET,YAAY,CACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACtD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,OAAO,CAAC,GAAG,CAAC;IA0CT,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAexC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkE3C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAezE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAe3B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAyB9D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAehE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAgBjE"}
@@ -0,0 +1 @@
1
+ import{providers}from"../utils/providers";import{runRcloneCommand}from"../utils/rclone/rclone";export class BaseStorageManager{async setupRclone(){process.platform}async createRemote(type,name,authType,credentials,settings){const provider=providers[type];if(!provider&&"local"!==type)throw new Error(`Unsupported storage type: ${type}`);const args=["config","create",name,type];if(args.push(...provider.setup(credentials,authType)),settings&&Object.entries(settings).forEach(([key,value])=>{args.push(key,value)}),"onedrive"===type&&"oauth"===authType&&credentials.token){const oneDriveCreds=JSON.parse(credentials.token),myHeaders=new Headers;myHeaders.append("Authorization",oneDriveCreds.access_token);try{await fetch("https://graph.microsoft.com/v1.0/me/drive",{method:"GET",headers:myHeaders,redirect:"follow"}).then(response=>response.json()).then(result=>{result&&result.id&&result.driveType&&args.push("drive_id",result.id,"drive_type",result.driveType)})}catch(error){}}args.push("--obscure","--non-interactive");try{const output=await runRcloneCommand(args);try{await runRcloneCommand(["lsd",name+":"]);return{success:!0,result:output}}catch(error){return await runRcloneCommand(["config","delete",name]),{success:!1,result:error?.message||""}}}catch(error){return{success:!1,result:error?.message||""}}}async updateRemote(name,newSettings,oldSettings){const updateArgs=["config","update",name];Object.entries(newSettings).forEach(([key,value])=>{updateArgs.push(key,value.toString())});try{const output=await runRcloneCommand([...updateArgs,"--non-interactive"]);try{await runRcloneCommand(["lsd",name+":"]);return{success:!0,result:output}}catch(error){const revertArgs=["config","update",name,"--non-interactive"];return Object.entries(oldSettings).forEach(([key,value])=>{revertArgs.push(key,value.toString())}),await runRcloneCommand(revertArgs),{success:!1,result:error?.message||""}}}catch(error){return{success:!1,result:error?.message||""}}}async deleteRemote(name){try{return{success:!0,result:await runRcloneCommand(["config","delete",name])}}catch(error){return{success:!1,result:error?.message||""}}}async getRemoteConfig(name){try{const lines=(await runRcloneCommand(["config","show",name])).trim().split("\n"),result={};let remoteName="";const errorLines=[],configLines=[];for(const line of lines){const trimmedLine=line.trim();if(trimmedLine)if(trimmedLine.startsWith("[")&&trimmedLine.endsWith("]"))remoteName=trimmedLine.slice(1,-1),result.name=remoteName;else if(configLines.push(trimmedLine),trimmedLine.startsWith("#"))errorLines.push(trimmedLine);else if(trimmedLine.includes(" = ")){const[key,...valueParts]=trimmedLine.split(" = "),value=valueParts.join(" = ");key&&void 0!==value&&(result[key.trim()]=value.trim())}}return configLines.length>0&&configLines.every(line=>line.startsWith("#"))?{success:!1,result:errorLines.join(" ").replace(/^#\s*/,"")}:{success:!0,result:result}}catch(error){return{success:!1,result:error?.message||""}}}async verifyRemote(name){try{return{success:!0,result:await runRcloneCommand(["lsd",name+":"])}}catch(error){return{success:!1,result:error?.message||""}}}async listRemotes(){try{return{success:!0,result:await runRcloneCommand(["listremotes"])}}catch(error){return{success:!1,result:error?.message||""}}}async browseRemote(remote,path="/"){try{const output=await runRcloneCommand(["lsjson",`${remote}:${path}`]);return{success:!0,result:{path:path,items:JSON.parse(output).map(item=>({name:item.Name,type:item.IsDir?"dir":"file",size:item.Size,modTime:item.ModTime,path:item.Path}))}}}catch(error){return{success:!1,result:error?.message||""}}}async getRemoteFileContent(remote,path){try{return{success:!0,result:await runRcloneCommand(["cat",`${remote}:${path}`])}}catch(error){return{success:!1,result:error?.message||""}}}async getDownloadLink(remote,path){try{return{success:!0,result:(await runRcloneCommand(["link",`${remote}:${path}`])).trim()}}catch(error){return{success:!1,result:error?.message||""}}}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStorageManager.js","sourceRoot":"","sources":["../../src/managers/BaseStorageManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import si from 'systeminformation';
2
+ import { DeviceSettings, DiscoveredFilesystem } from '../types/devices';
3
+ export declare class BaseSystemManager {
4
+ private storageManager;
5
+ constructor();
6
+ getMetrics(): Promise<{
7
+ success: boolean;
8
+ result: Record<string, any>;
9
+ }>;
10
+ getVersions(): Promise<{
11
+ success: boolean;
12
+ result: Record<string, any>;
13
+ }>;
14
+ checkDiskSpace(): Promise<{
15
+ success: boolean;
16
+ result: string | Record<string, any>;
17
+ }>;
18
+ getRootDrives(): Promise<{
19
+ success: boolean;
20
+ result: Record<string, any>;
21
+ }>;
22
+ private shouldSkipMountPoint;
23
+ private getFriendlyMountName;
24
+ getBrowsePath(givenPath?: string): Promise<{
25
+ success: boolean;
26
+ result: Record<string, any>;
27
+ }>;
28
+ private formatPermissions;
29
+ getOSVersion(): Promise<{
30
+ success: boolean;
31
+ result: string;
32
+ }>;
33
+ updateRestic(): Promise<{
34
+ success: boolean;
35
+ result: string;
36
+ }>;
37
+ updateRclone(): Promise<{
38
+ success: boolean;
39
+ result: string;
40
+ }>;
41
+ createRemoteStorage(type: string, name: string, authType: string, credentials: Record<string, string>, settings?: Record<string, string>): Promise<{
42
+ success: boolean;
43
+ result: string;
44
+ }>;
45
+ updateRemoteStorage(storageName: string, settings: {
46
+ old: Record<string, any>;
47
+ new: Record<string, any>;
48
+ }): Promise<any>;
49
+ removeRemoteStorage(storageName: string): Promise<any>;
50
+ updateSettings(deviceSettings: DeviceSettings): Promise<{
51
+ success: boolean;
52
+ result: string;
53
+ }>;
54
+ private executeUpdateScript;
55
+ isServerEdition(osData: si.Systeminformation.OsData): Promise<boolean>;
56
+ getMountPoints(): Promise<{
57
+ success: boolean;
58
+ result: string | DiscoveredFilesystem[];
59
+ }>;
60
+ /**
61
+ * Parses the output of `df -h` command to extract usage information
62
+ * @param dfOutput The raw output from `df -h` command
63
+ * @returns A map of mountpoint to usage information
64
+ */
65
+ private parseDfOutput;
66
+ /**
67
+ * Parses the JSON output of the `lsblk` command to identify and categorize
68
+ * all mounted filesystems for a System Rescue backup.
69
+ *
70
+ * @param lsblkJsonOutput A string containing the raw JSON from `lsblk --json -o ...`.
71
+ * @returns A promise that resolves to an array of DiscoveredFilesystem objects.
72
+ * @throws An error if the input string is not valid JSON.
73
+ */
74
+ analyzeBlockDevices(lsblkJsonOutput: string, dfData?: Map<string, {
75
+ used: string;
76
+ available: string;
77
+ usePercent: string;
78
+ }>): Promise<DiscoveredFilesystem[]>;
79
+ /**
80
+ * Determines if a given mount point is critical for a bootable Linux system.
81
+ * @param mountpoint The filesystem mount point (e.g., "/", "/boot").
82
+ * @returns True if the mount point is considered essential for booting.
83
+ */
84
+ isCriticalMountpoint(mountpoint: string): boolean;
85
+ }
86
+ //# sourceMappingURL=BaseSystemManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSystemManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseSystemManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import os from"os";import{execSync}from"child_process";import{chmod,readdir,readFile,stat,writeFile,mkdtemp,rm}from"fs/promises";import{createWriteStream}from"fs";import path from"path";import si from"systeminformation";import https from"https";import{promisify}from"util";import{exec}from"child_process";import{getRcloneVersion,getResticVersion}from"../utils/versions";import{BaseStorageManager}from"./BaseStorageManager";import{runCommand}from"../utils/runCommand";import{appPaths}from"../utils/AppPaths";const execAsync=promisify(exec);export class BaseSystemManager{storageManager;constructor(){this.storageManager=new BaseStorageManager}async getMetrics(){try{const[systemInfo,cpuInfo,memInfo,memLayout,osInfo,diskInfo,networkInfo,currentLoadInfo,timeInfo]=await Promise.all([si.system(),si.cpu(),si.mem(),si.memLayout(),si.osInfo(),si.diskLayout(),si.networkInterfaces(),si.currentLoad(),si.time()]),isServer=this.isServerEdition(osInfo),fsStats=await si.fsSize();return{success:!0,result:{system:{manufacturer:systemInfo.manufacturer,model:systemInfo.model,version:systemInfo.version,serial:systemInfo.serial,uuid:systemInfo.uuid},cpu:{manufacturer:cpuInfo.manufacturer,brand:cpuInfo.brand,speed:cpuInfo.speed,cores:cpuInfo.cores,physicalCores:cpuInfo.physicalCores,processors:cpuInfo.processors,cache:cpuInfo.cache,load:{currentLoad:currentLoadInfo.currentLoad,cpus:currentLoadInfo.cpus.map(cpu=>cpu.load)}},memory:{total:memInfo.total,free:memInfo.free,used:memInfo.used,active:memInfo.active,available:memInfo.available,swapTotal:memInfo.swaptotal,swapUsed:memInfo.swapused,swapFree:memInfo.swapfree,layout:memLayout.map(module=>({size:module.size,bank:module.bank,type:module.type,clockSpeed:module.clockSpeed,formFactor:module.formFactor,manufacturer:module.manufacturer,partNum:module.partNum,serialNum:module.serialNum,voltageConfigured:module.voltageConfigured,voltageMin:module.voltageMin,voltageMax:module.voltageMax}))},os:{platform:osInfo.platform,distro:osInfo.distro,release:osInfo.release,kernel:osInfo.kernel,arch:osInfo.arch,hostname:osInfo.hostname,logofile:osInfo.logofile,isServer:isServer},time:{current:timeInfo.current,uptime:timeInfo.uptime,timezone:timeInfo.timezone,timezoneName:timeInfo.timezoneName},disks:{physical:diskInfo.map(disk=>({device:disk.device,name:disk.name,type:disk.type,vendor:disk.vendor,size:disk.size,interfaceType:disk.interfaceType})),filesystems:fsStats.filter(fs=>this.shouldSkipMountPoint(fs)).map(fs=>({fs:fs.fs,type:fs.type,size:fs.size,used:fs.used,available:fs.available,use:fs.use,mount:fs.mount,name:this.getFriendlyMountName(fs)}))},network:Array.isArray(networkInfo)?networkInfo.map(net=>({iface:net.iface,ifaceName:net.ifaceName,ip4:net.ip4,ip6:net.ip6,mac:net.mac,internal:net.internal,operstate:net.operstate,type:net.type,speed:net.speed,dhcp:net.dhcp})):[networkInfo]}}}catch(error){return{success:!1,result:error?.message||"Failed to fetch system metrics"}}}async getVersions(){try{const osVersion=await this.getOSVersion();return{success:!0,result:{node:process.version,system:os.release(),platform:os.platform(),os:osVersion,restic:getResticVersion(),rclone:getRcloneVersion()}}}catch(error){return{success:!1,result:error?.message||"Failed to fetch version information"}}}async checkDiskSpace(){try{const lines=execSync("df -h /").toString().trim().split("\n"),[filesystem,size,used,available,percentage,mounted]=lines[1].split(/\s+/);return{success:!0,result:{filesystem:filesystem,size:size,used:used,available:available,percentage:percentage,mounted:mounted}}}catch{return{success:!1,result:"Unable to fetch disk space information"}}}async getRootDrives(){const platform=os.platform();if("win32"===platform){const{stdout:stdout}=await execAsync("wmic logicaldisk get name,volumename");return{success:!0,result:stdout.trim().split("\n").slice(1).map(line=>{const[name]=line.trim().split(/\s+/);return{name:name,path:name,type:"drive",isDirectory:!0}})}}if("darwin"===platform){const{stdout:stdout}=await execAsync("df -h /Volumes/");return{success:!0,result:stdout.trim().split("\n").slice(1).map(line=>{const fields=line.split(/\s+/),name=fields[fields.length-1];return{name:name,path:name,type:"directory",isDirectory:!0}})}}try{const fsStats=await si.fsSize(),result=fsStats.filter(fs=>this.shouldSkipMountPoint(fs)).map(fs=>({name:this.getFriendlyMountName(fs),path:fs.mount,type:"directory",isDirectory:!0}));return result.some(item=>"/"===item.path)||result.unshift({name:"Root (/)",path:"/",type:"directory",isDirectory:!0}),{success:!0,result:result}}catch(error){return{success:!0,result:[{name:"Root (/)",path:"/",type:"directory",isDirectory:!0}]}}}shouldSkipMountPoint(fs){const mountpoint=fs.mount,fstype=fs.type?.toLowerCase()||"",virtualFS=["proc","sysfs","devfs","devpts","tmpfs","cgroup","cgroup2","pstore","bpf","tracefs","debugfs","securityfs","hugetlbfs","mqueue","ramfs","autofs","rpc_pipefs","nfsd","binfmt_misc","fuse.gvfsd-fuse","fusectl"];for(const vfs of virtualFS)if(fstype===vfs)return!1;if(mountpoint.startsWith("/snap/"))return!1;const skipPaths=["/dev","/proc","/sys","/run","/boot/efi","/mnt/wslg"];for(const skipPath of skipPaths)if(mountpoint===skipPath||mountpoint.startsWith(skipPath+"/"))return!1;return!0}getFriendlyMountName(fs){if("win32"===process.platform)return`Local Disk (${fs.mount})`;const mountpoint=fs.mount,device=fs.fs;switch(mountpoint){case"/":return"Root (/)";case"/home":return"Home (/home)";case"/tmp":return"Temporary (/tmp)";case"/var":return"System Data (/var)";case"/usr":return"Programs (/usr)";case"/opt":return"Optional Software (/opt)";default:if(mountpoint.startsWith("/mnt/")){const name=mountpoint.substring(5);return`${name.charAt(0).toUpperCase()+name.slice(1)} (${mountpoint})`}if(mountpoint.startsWith("/media/")){const parts=mountpoint.substring(7).split("/"),deviceName=parts[parts.length-1];return`${deviceName.charAt(0).toUpperCase()+deviceName.slice(1)} (${mountpoint})`}if(device&&!device.startsWith("/dev/loop")){return`${mountpoint} (${device.split("/").pop()})`}return mountpoint}}async getBrowsePath(givenPath){try{const requestedPath=givenPath;if(!requestedPath){const drives=await this.getRootDrives(),itemsWithStats=await Promise.all(drives.result.map(async drive=>{try{const stats=await stat(drive.path);return{name:drive.name,path:drive.path,type:drive.type,isDirectory:drive.isDirectory,size:stats.isDirectory()?0:stats.size,modifiedAt:stats.mtime,owner:stats.uid,permissions:this.formatPermissions(stats.mode)}}catch(error){return{name:drive.name,path:drive.path,type:drive.type,isDirectory:drive.isDirectory,size:0,modifiedAt:new Date(0),owner:"",permissions:""}}}));return{success:drives.success,result:{path:"/",items:itemsWithStats}}}let formattedPath=requestedPath;const normalizedPath=formattedPath.match(/^[A-Za-z]:$/)?formattedPath+"\\":formattedPath,items=await readdir(normalizedPath,{withFileTypes:!0}),contents=await Promise.all(items.map(async item=>{try{const fullPath=path.join(formattedPath,item.name).split(path.sep).join("/"),stats=await stat(fullPath);return{name:item.name,path:fullPath,type:item.isDirectory()?"directory":"file",isDirectory:item.isDirectory(),size:stats.size,modifiedAt:stats.mtime,owner:stats.uid,permissions:this.formatPermissions(stats.mode)}}catch(error){return null}})).then(results=>results.filter(item=>null!==item));return{success:!0,result:{path:requestedPath,items:contents.sort((a,b)=>a.isDirectory&&!b.isDirectory?-1:!a.isDirectory&&b.isDirectory?1:a.name.localeCompare(b.name))}}}catch(error){return{success:!1,result:error?.message||"Failed to read directory contents"}}}formatPermissions(mode){return(16384==(61440&mode)?"d":"-")+[256&mode?"r":"-",128&mode?"w":"-",64&mode?"x":"-",32&mode?"r":"-",16&mode?"w":"-",8&mode?"x":"-",4&mode?"r":"-",2&mode?"w":"-",1&mode?"x":"-"].join("")}async getOSVersion(){const osInfo=await si.osInfo();return{success:!0,result:`${osInfo.distro} ${osInfo.release}`}}async updateRestic(){try{return{success:!0,result:await this.executeUpdateScript("restic")}}catch(error){return{success:!1,result:error?.message||"Failed to update restic via script"}}}async updateRclone(){try{return{success:!0,result:await this.executeUpdateScript("rclone")}}catch(error){return{success:!1,result:error?.message||"Failed to update rclone via script"}}}async createRemoteStorage(type,name,authType,credentials,settings){return await this.storageManager.createRemote(type,name,authType,credentials,settings)}async updateRemoteStorage(storageName,settings){return await this.storageManager.updateRemote(storageName,settings.new,settings.old)}async removeRemoteStorage(storageName){return await this.storageManager.deleteRemote(storageName)}async updateSettings(deviceSettings){try{const platform=os.platform(),envVars=[];if(deviceSettings.restic){const{maxProcessor:maxProcessor,cacheDir:cacheDir,readConcurrency:readConcurrency,packSize:packSize}=deviceSettings.restic;envVars.push(["GOMAXPROCS",maxProcessor],["RESTIC_CACHE_DIR",cacheDir],["RESTIC_READ_CONCURRENCY",readConcurrency],["RESTIC_PACK_SIZE",packSize])}if(deviceSettings.rclone){const{tempDir:tempDir,cacheDir:cacheDir,bwlimit:bwlimit,timeout:timeout,retries:retries,lowLevelRetries:lowLevelRetries,transfers:transfers,checkers:checkers,bufferSize:bufferSize,multiThreadStream:multiThreadStream,configPass:configPass}=deviceSettings.rclone;envVars.push(["RCLONE_TEMP_DIR",tempDir],["RCLONE_CACHE_DIR",cacheDir],["RCLONE_BWLIMIT",bwlimit],["RCLONE_TIMEOUT",timeout],["RCLONE_RETRIES",retries],["RCLONE_LOW_LEVEL_RETRIES",lowLevelRetries],["RCLONE_TRANSFERS",transfers],["RCLONE_CHECKERS",checkers],["RCLONE_BUFFER_SIZE",bufferSize],["RCLONE_MULTI_THREAD_STREAMS",multiThreadStream],["RCLONE_CONFIG_PASS",configPass])}if("win32"===platform)for(const[key,value]of envVars)if(null==value)try{await execAsync(`REG QUERY "HKCU\\Environment" /v ${key}`),await execAsync(`REG DELETE "HKCU\\Environment" /F /V ${key}`)}catch{continue}else await execAsync(`SETX ${key} "${value}"`);else{const envFile="/etc/environment";let content=await readFile(envFile,"utf8");for(const[key,value]of envVars)content=content.replace(new RegExp(`^${key}=.*`,"m"),""),null!=value&&(content+=`\n${key}=${value}`);content=content.replace(/\n+/g,"\n").trim(),await writeFile(envFile,content)}return{success:!0,result:"System environment variables updated successfully!"}}catch(error){return{success:!1,result:error?.message||"Failed to update system environment variables"}}}async executeUpdateScript(binaryName){const licenseKey=process.env.LICENSE_KEY||"no-license",isWindows="win32"===os.platform(),scriptName=isWindows?`update-${binaryName}.ps1`:`update-${binaryName}.sh`,shellCmd=isWindows?"powershell.exe":"/bin/bash",shellArgs=isWindows?["-ExecutionPolicy","Bypass","-File"]:[],scriptURL=`https://dl.usepluton.com/dependencies/scripts/${scriptName}?license=${licenseKey}`,tempDir=await mkdtemp(path.join(appPaths.getTempDir(),"pluton-updater-")),tempScriptPath=path.join(tempDir,scriptName);try{await new Promise((resolve,reject)=>{const file=createWriteStream(tempScriptPath);https.get(scriptURL,response=>{200===response.statusCode?(response.pipe(file),file.on("finish",()=>{file.close(),resolve()})):reject(new Error(`Failed to download script: Status Code ${response.statusCode}`))}).on("error",err=>{reject(new Error(`Failed to download script: ${err.message}`))})}),isWindows||await chmod(tempScriptPath,493);const commandArgs=[shellCmd,...shellArgs,tempScriptPath],match=(await runCommand(commandArgs)).match(/\[SUCCESS\] New version: (.*)/);return match&&match[1]?match[1].trim():"restic"===binaryName?getResticVersion():getRcloneVersion()}finally{await rm(tempDir,{recursive:!0,force:!0})}}async isServerEdition(osData){const osInfo=osData||await si.osInfo(),distro=osInfo.distro.toLowerCase();return"win32"===osInfo.platform?distro.includes("server")||distro.includes("windows server"):"linux"===osInfo.platform?distro.includes("server")||distro.includes("enterprise")||distro.includes("centos")||distro.includes("redhat")||distro.includes("ubuntu server")||distro.includes("debian")||distro.includes("fedora server"):"darwin"===osInfo.platform&&distro.includes("server")}async getMountPoints(){try{if("linux"!==os.platform())return{success:!1,result:"lsblk is only supported on Linux systems"};const{stdout:stdout,stderr:stderr}=await execAsync("lsblk --json -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT,SIZE");if(stderr)return{success:!1,result:`Error executing lsblk: ${stderr}`};let dfData;try{const{stdout:dfOutput}=await execAsync("df -h");dfData=this.parseDfOutput(dfOutput)}catch{}return{success:!0,result:await this.analyzeBlockDevices(stdout,dfData)}}catch{return{success:!1,result:"Error executing lsblk"}}}parseDfOutput(dfOutput){const dfMap=new Map,lines=dfOutput.trim().split("\n");for(let i=1;i<lines.length;i++){const line=lines[i].trim();if(!line)continue;const parts=line.split(/\s+/);let mountpoint,used,available,usePercent;if(parts.length>=6)[,,used,available,usePercent,mountpoint]=parts;else{if(5!==parts.length)continue;[,used,available,usePercent,mountpoint]=parts}dfMap.set(mountpoint,{used:used,available:available,usePercent:usePercent})}return dfMap}async analyzeBlockDevices(lsblkJsonOutput,dfData){const finalFilesystems=[],formatSize=size=>size.replace("G"," GB").replace("M"," MB").replace("K"," KB").replace("T"," TB"),processDevices=devices=>{for(const device of devices){if(device.mountpoint&&device.fstype){const usage=dfData?dfData.get(device.mountpoint):void 0;finalFilesystems.push({device:device.name,mountpoint:device.mountpoint,fstype:device.fstype,label:device.label,uuid:device.uuid,size:formatSize(device.size),used:usage?.used?formatSize(usage.used):void 0,isCritical:this.isCriticalMountpoint(device.mountpoint)})}device.children&&device.children.length>0&&processDevices(device.children)}};try{const lsblkData=JSON.parse(lsblkJsonOutput);lsblkData.blockdevices&&processDevices(lsblkData.blockdevices)}catch(error){throw new Error("Invalid lsblk JSON provided. Cannot analyze filesystems.")}return finalFilesystems.sort((a,b)=>a.mountpoint.localeCompare(b.mountpoint))}isCriticalMountpoint(mountpoint){return["/","/boot","/boot/efi"].includes(mountpoint)}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSystemManager.js","sourceRoot":"","sources":["../../src/managers/BaseSystemManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Cron } from 'croner';
2
+ interface ScheduleOptions {
3
+ isActive: boolean;
4
+ taskCallback: (id: string, opts: Record<string, any>) => void;
5
+ [key: string]: any;
6
+ }
7
+ interface ScheduleEntry<T> {
8
+ type: string;
9
+ cron: Cron;
10
+ options: T;
11
+ }
12
+ interface TaskCallbacks {
13
+ [key: string]: (id: string, opts: Record<string, any>) => Promise<any>;
14
+ }
15
+ export declare class CronManager<T extends ScheduleOptions> {
16
+ private static instance;
17
+ private schedules;
18
+ private initialized;
19
+ private taskCallbacks;
20
+ private readonly SCHEDULE_FILE;
21
+ private constructor();
22
+ static getInstance<T extends ScheduleOptions>(taskCallbacks: TaskCallbacks, scheduleFilePath?: string): CronManager<T>;
23
+ private saveSchedules;
24
+ loadSchedules(): Promise<void>;
25
+ scheduleTask(id: string, cronExpression: string, options: T, scheduleType: string): Promise<void>;
26
+ updateSchedule(id: string, cronExpression: string, options: T, scheduleType: string): Promise<void>;
27
+ removeSchedule(id: string): Promise<void>;
28
+ getSchedule(id: string): Promise<ScheduleEntry<T>[] | undefined>;
29
+ getScheduleSync(id: string): ScheduleEntry<T>[] | undefined;
30
+ getSchedules(): Promise<Map<string, ScheduleEntry<T>[]>>;
31
+ pauseSchedule(id: string): Promise<boolean>;
32
+ resumeSchedule(id: string): Promise<boolean>;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=CronManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronManager.d.ts","sourceRoot":"","sources":["../../src/managers/CronManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK9B,UAAU,eAAe;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC9D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AASD,UAAU,aAAa,CAAC,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,CAAC;CACX;AAED,UAAU,aAAa;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACvE;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,eAAe;IAEjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAGvC,OAAO;WASO,WAAW,CAAC,CAAC,SAAS,eAAe,EAClD,aAAa,EAAE,aAAa,EAC5B,gBAAgB,CAAC,EAAE,MAAM,GACvB,WAAW,CAAC,CAAC,CAAC;YAOH,aAAa;IAkBrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B,YAAY,CACjB,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAiDV,cAAc,CACnB,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAoCV,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;IAKtE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS;IAKrD,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAKxD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB3C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBlD"}
@@ -0,0 +1 @@
1
+ import{Cron}from"croner";import path from"path";import{mkdir,writeFile,readFile}from"fs/promises";import{appPaths}from"../utils/AppPaths";export class CronManager{static instance;schedules=new Map;initialized;taskCallbacks;SCHEDULE_FILE;constructor(taskCallbacks,scheduleFilePath){const dataDir=appPaths.getDataDir();this.SCHEDULE_FILE=scheduleFilePath||path.join(dataDir,"schedules.json"),this.taskCallbacks=taskCallbacks,this.initialized=this.loadSchedules()}static getInstance(taskCallbacks,scheduleFilePath){return CronManager.instance||(CronManager.instance=new CronManager(taskCallbacks,scheduleFilePath)),CronManager.instance}async saveSchedules(){const scheduleData=[];this.schedules.forEach((entries,id)=>{entries.forEach(entry=>{scheduleData.push({id:id,cronExpression:entry.options.cronExpression,scheduleType:entry.type,options:entry.options})})}),await mkdir(path.dirname(this.SCHEDULE_FILE),{recursive:!0}),await writeFile(this.SCHEDULE_FILE,JSON.stringify(scheduleData,null,2))}async loadSchedules(){try{const data=await readFile(this.SCHEDULE_FILE,"utf8"),scheduleData=JSON.parse(data);for(const{id:id,cronExpression:cronExpression,options:options,scheduleType:scheduleType}of scheduleData){const taskOptions={...options,taskCallback:this.taskCallbacks[scheduleType]};await this.scheduleTask(id,cronExpression,taskOptions,scheduleType)}}catch(error){error.code}}async scheduleTask(id,cronExpression,options,scheduleType){const existingSchedules=this.schedules.get(id)||[];if(!existingSchedules.find(s=>s.type===scheduleType))try{Date.now(),Math.floor(1e3*Math.random());const cron=new Cron(cronExpression,()=>{options&&"object"==typeof options&&"taskCallback"in options&&options.taskCallback&&options.taskCallback(id,options)});options&&"object"==typeof options&&"isActive"in options&&!options.isActive&&cron.pause(),existingSchedules.push({type:scheduleType,cron:cron,options:options}),this.schedules.set(id,existingSchedules),await this.saveSchedules()}catch(error){throw new Error(`Could Not Schedule Cron. ${error.message}`)}}async updateSchedule(id,cronExpression,options,scheduleType){await this.initialized;const existingSchedules=this.schedules.get(id);if(existingSchedules){const scheduleToUpdate=existingSchedules.find(s=>s.type===scheduleType);if(scheduleToUpdate)try{scheduleToUpdate.cron.stop();const newCron=new Cron(cronExpression,()=>{options&&"object"==typeof options&&"taskCallback"in options&&options.taskCallback(id,options)});options&&"object"==typeof options&&"isActive"in options&&!options.isActive&&newCron.pause();const updatedSchedules=existingSchedules.map(s=>s.type===scheduleType?{type:scheduleType,cron:newCron,options:options}:s);this.schedules.set(id,updatedSchedules),await this.saveSchedules()}catch(error){throw new Error(`Could Not Schedule Cron with Updated Settings. ${error.message}`)}}}async removeSchedule(id){await this.initialized;const schedules=this.schedules.get(id);schedules&&(schedules.forEach(schedule=>schedule.cron.stop()),this.schedules.delete(id),await this.saveSchedules())}async getSchedule(id){return await this.initialized,this.schedules.get(id)}getScheduleSync(id){return this.schedules.get(id)}async getSchedules(){return await this.initialized,this.schedules}async pauseSchedule(id){await this.initialized;const schedules=this.schedules.get(id);if(schedules){const success=schedules.every(schedule=>(schedule.options.isActive=!1,schedule.cron.pause()));return success&&await this.saveSchedules(),success}return!1}async resumeSchedule(id){await this.initialized;const schedules=this.schedules.get(id);if(schedules){const success=schedules.every(schedule=>(schedule.options.isActive=!0,schedule.cron.resume()));return success&&await this.saveSchedules(),success}return!1}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronManager.js","sourceRoot":"","sources":["../../src/managers/CronManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ChildProcess } from 'child_process';
2
+ export declare class ProcessManager {
3
+ private processes;
4
+ trackProcess(id: string, process: ChildProcess): void;
5
+ killProcess(id: string): boolean;
6
+ getProcess(id: string): ChildProcess | undefined;
7
+ }
8
+ export declare const processManager: ProcessManager;
9
+ //# sourceMappingURL=ProcessManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessManager.d.ts","sourceRoot":"","sources":["../../src/managers/ProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7E,qBAAa,cAAc;IAC1B,OAAO,CAAC,SAAS,CAAmC;IAEpD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAI9C,WAAW,CAAC,EAAE,EAAE,MAAM;IAWtB,UAAU,CAAC,EAAE,EAAE,MAAM;CAGrB;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ export class ProcessManager{processes=new Map;trackProcess(id,process){this.processes.set(id,process)}killProcess(id){const process=this.processes.get(id);return!!process&&(process.kill("SIGTERM"),this.processes.delete(id),!0)}getProcess(id){return this.processes.get(id)}}export const processManager=new ProcessManager;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../src/managers/ProcessManager.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAClB,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEpD,YAAY,CAAC,EAAU,EAAE,OAAqB;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,EAAU;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACb,8CAA8C;YAC9C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,UAAU,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACD;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,85 @@
1
+ export interface ResticProgress {
2
+ message_type?: string;
3
+ seconds_elapsed?: number;
4
+ seconds_remaining?: number;
5
+ percent_done?: number;
6
+ total_files?: number;
7
+ files_done?: number;
8
+ total_bytes?: number;
9
+ bytes_done?: number;
10
+ current_files?: string[];
11
+ }
12
+ export interface ProgressEvent {
13
+ timestamp: string;
14
+ phase: string;
15
+ action: string;
16
+ resticData?: ResticProgress;
17
+ error?: string;
18
+ completed: boolean;
19
+ }
20
+ export interface BackupProgressFile {
21
+ planId: string;
22
+ backupId: string;
23
+ status: string;
24
+ startTime: string;
25
+ lastUpdate: string;
26
+ duration?: number;
27
+ events: ProgressEvent[];
28
+ }
29
+ export declare class ProgressManager {
30
+ private progressDir;
31
+ private type;
32
+ private writeLocks;
33
+ constructor(progressDir: string, type?: 'backup' | 'restore');
34
+ /**
35
+ * Initialize the progress manager and create directory if needed
36
+ */
37
+ initialize(): Promise<void>;
38
+ /**
39
+ * A synchronized method to perform read-modify-write operations safely.
40
+ */
41
+ private synchronizedUpdate;
42
+ /**
43
+ * Creates initial progress file for a backup
44
+ */
45
+ initializeProgress(planId: string, backupId: string, retryInfo: {
46
+ attempts: number;
47
+ maxAttempts: number;
48
+ }): Promise<void>;
49
+ /**
50
+ * Adds a new action to the progress events
51
+ */
52
+ updateAction(planId: string, backupId: string, phase: string, action: string, completed: boolean, error?: string): Promise<void>;
53
+ /**
54
+ * Updates with restic JSON output (only during backup phase)
55
+ */
56
+ updateResticProgress(planId: string, backupId: string, resticChunk: string): Promise<void>;
57
+ /**
58
+ * Marks backup as completed
59
+ */
60
+ markCompleted(planId: string, backupId: string, success: boolean, errorMsg?: string, finalFail?: boolean): Promise<void>;
61
+ /**
62
+ * Reads progress data from file. Now public but safe.
63
+ */
64
+ readProgress(planId: string, backupId: string): Promise<BackupProgressFile | null>;
65
+ /**
66
+ * Gets the latest restic progress from the progress file
67
+ */
68
+ getResticProgress(planId: string, backupId: string): Promise<ResticProgress | null>;
69
+ /**
70
+ * Reads progress from file.
71
+ * CHANGED: This method is now resilient. It no longer throws errors.
72
+ * It returns a default object if the file doesn't exist or is invalid, allowing the process to continue.
73
+ */
74
+ private readProgressFile;
75
+ /**
76
+ * Writes progress to file.
77
+ * CHANGED: This method is now resilient and will not throw errors.
78
+ */
79
+ private writeProgressFile;
80
+ /**
81
+ * Removes progress files older than specified duration
82
+ */
83
+ cleanupOldProgress(maxAgeMs: number): Promise<void>;
84
+ }
85
+ //# sourceMappingURL=ProgressManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressManager.d.ts","sourceRoot":"","sources":["../../src/managers/ProgressManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAAmC;gBAEzC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB;IAKtE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;YACW,kBAAkB;IAqChC;;OAEG;IACG,kBAAkB,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;IACG,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChG;;OAEG;IACG,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAIxF;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAazF;;;;OAIG;YACW,gBAAgB;IA4B9B;;;OAGG;YACW,iBAAiB;IAQ/B;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BzD"}
@@ -0,0 +1 @@
1
+ import{writeFile,readFile,mkdir,readdir,stat,unlink}from"fs/promises";import{join,extname}from"path";import{existsSync}from"fs";export class ProgressManager{progressDir;type;writeLocks=new Map;constructor(progressDir,type="backup"){this.progressDir=progressDir,this.type=type}async initialize(){try{existsSync(this.progressDir)||await mkdir(this.progressDir,{recursive:!0})}catch(error){}}async synchronizedUpdate(backupId,updateFunction){const lockKey=`${this.type}-${backupId}`,newLock=(this.writeLocks.get(lockKey)||Promise.resolve()).then(async()=>{const planId=(await this.readProgressFile(backupId))?.planId||"",progress=await this.readProgressFile(backupId,planId);if(progress){const updatedProgress=updateFunction(progress),filename=`${this.type}-${backupId}.json`,filePath=join(this.progressDir,filename),data=JSON.stringify(updatedProgress,null,2);await writeFile(filePath,data,"utf-8")}}).catch(err=>{});this.writeLocks.set(lockKey,newLock),await newLock,this.writeLocks.get(lockKey)===newLock&&this.writeLocks.delete(lockKey)}async initializeProgress(planId,backupId,retryInfo){if(0===retryInfo.attempts){const progress={planId:planId,backupId:backupId,status:"running",startTime:(new Date).toISOString(),lastUpdate:(new Date).toISOString(),events:[{timestamp:(new Date).toISOString(),phase:"initializing",action:"INITIALIZE",completed:!0}]};await this.writeProgressFile(planId,backupId,progress)}}async updateAction(planId,backupId,phase,action,completed,error){await this.synchronizedUpdate(backupId,progress=>{const event={timestamp:(new Date).toISOString(),phase:phase,action:action,completed:completed,error:error};return progress.events.push(event),progress.lastUpdate=(new Date).toISOString(),progress})}async updateResticProgress(planId,backupId,resticChunk){const lines=resticChunk.split("\n").filter(line=>""!==line.trim());0!==lines.length&&await this.synchronizedUpdate(backupId,progress=>{let targetEvent,didUpdate=!1;for(let i=progress.events.length-1;i>=0;i--){const event=progress.events[i];if(("backup"===event.phase||"restore"===event.phase)&&!event.completed){targetEvent=event;break}}if(!targetEvent)return progress;for(const line of lines)try{const resticData=JSON.parse(line);"status"!==resticData.message_type&&"summary"!==resticData.message_type||(targetEvent.resticData=resticData,didUpdate=!0)}catch(e){}return didUpdate&&(targetEvent.timestamp=(new Date).toISOString(),progress.lastUpdate=(new Date).toISOString()),progress})}async markCompleted(planId,backupId,success,errorMsg,finalFail){await this.synchronizedUpdate(backupId,progress=>{progress.lastUpdate=(new Date).toISOString();const startTime=new Date(progress.startTime),endTime=new Date;let finalEvent;if(progress.duration=endTime.getTime()-startTime.getTime(),success)progress.status="completed",finalEvent={timestamp:(new Date).toISOString(),phase:"finished",action:"TASK_COMPLETED",completed:!0};else{progress.status="failed";const finalFailReason=errorMsg?.includes("cancelled")?"TASK_CANCELLED":"FAILED_PERMANENTLY";finalEvent={timestamp:(new Date).toISOString(),phase:finalFail?"finished":"error",action:finalFail?finalFailReason:"TASK_FAILED",error:errorMsg,completed:!0}}return progress.events.push(finalEvent),progress})}async readProgress(planId,backupId){return this.readProgressFile(backupId,planId)}async getResticProgress(planId,backupId){const progress=await this.readProgressFile(backupId,planId);if(!progress)return null;for(let i=progress.events.length-1;i>=0;i--){const event=progress.events[i];if(event.resticData)return event.resticData}return null}async readProgressFile(backupId,planId){const filename=`${this.type}-${backupId}.json`,filePath=join(this.progressDir,filename);try{const data=await readFile(filePath,"utf-8");if(!data)throw new Error("File is empty");return JSON.parse(data)}catch(error){return"ENOENT"!==error.code&&error.message,{planId:planId||"",backupId:backupId,status:"running",startTime:(new Date).toISOString(),lastUpdate:(new Date).toISOString(),events:[]}}}async writeProgressFile(planId,backupId,progress){await this.synchronizedUpdate(backupId,()=>progress)}async cleanupOldProgress(maxAgeMs){try{const files=await readdir(this.progressDir),cutoff=Date.now()-maxAgeMs;for(const file of files){if(".json"!==extname(file))continue;const filePath=join(this.progressDir,file);try{(await stat(filePath)).mtime.getTime()<cutoff&&await unlink(filePath)}catch(error){}}}catch(error){}}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressManager.js","sourceRoot":"","sources":["../../src/managers/ProgressManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ResticRestoredFile } from '../types/restic';
2
+ import { RestoreStats } from '../types/restores';
3
+ export declare class RestoreStatsManager {
4
+ private statsDirectory;
5
+ constructor();
6
+ initialize(planId: string, backupId: string, restoreId: string, sources: string[], restoreConfig: Record<string, any>): Promise<void>;
7
+ update(restoreId: string, files: ResticRestoredFile[], stats: RestoreStats): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=RestoreStatsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestoreStatsManager.d.ts","sourceRoot":"","sources":["../../src/managers/RestoreStatsManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAiB,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAGlF,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,cAAc,CAAc;;IAM9B,UAAU,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA6C7B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAahG"}
@@ -0,0 +1 @@
1
+ import{readFile,writeFile}from"fs/promises";import{existsSync}from"fs";import{appPaths}from"../utils/AppPaths";import getBackupSourceFiles from"../utils/getBackupSourceFiles";import path from"path";export class RestoreStatsManager{statsDirectory="";constructor(){this.statsDirectory=appPaths.getStatsDir()}async initialize(planId,backupId,restoreId,sources,restoreConfig){const filePath=path.join(this.statsDirectory,`restore-${restoreId}.json`);if(existsSync(filePath))return;const initialStats={planId:planId,backupId:backupId,restoreId:restoreId,sources:sources,config:restoreConfig,sourcePaths:[],restoredPaths:[],stats:{total_files:0,files_restored:0,total_bytes:0,bytes_restored:0}};if(sources.length>0){const sourcePaths=await getBackupSourceFiles(sources);sourcePaths.result&&Array.isArray(sourcePaths.result)&&(initialStats.sourcePaths=sourcePaths.result)}try{const filePath=path.join(this.statsDirectory,`restore-${restoreId}.json`);existsSync(filePath)||await writeFile(filePath,JSON.stringify(initialStats,null,2),"utf-8")}catch(error){}}async update(restoreId,files,stats){const filePath=path.join(this.statsDirectory,`restore-${restoreId}.json`);try{const statsContent=await readFile(filePath,"utf-8"),updatedStats={...JSON.parse(statsContent),restoredPaths:files,stats:stats};await writeFile(filePath,JSON.stringify(updatedStats,null,2),"utf-8")}catch(error){}}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestoreStatsManager.js","sourceRoot":"","sources":["../../src/managers/RestoreStatsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,oBAAoB,MAAM,+BAA+B,CAAC;AAEjE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,OAAO,mBAAmB;IACvB,cAAc,GAAW,EAAE,CAAC;IAEpC;QACC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,UAAU,CACf,MAAc,EACd,QAAgB,EAChB,SAAiB,EACjB,OAAiB,EACjB,aAAkC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,SAAS,OAAO,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEvC,iEAAiE;QACjE,IAAI,SAAS,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QACD,MAAM,YAAY,GAAqB;YACtC,MAAM;YACN,QAAQ;YACR,SAAS;YACT,OAAO;YACP,MAAM,EAAE,aAAa;YACrB,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,EAAE;YACjB,KAAK,EAAE;gBACN,WAAW,EAAE,CAAC;gBACd,cAAc,EAAE,CAAC;gBACjB,WAAW,EAAE,CAAC;gBACd,cAAc,EAAE,CAAC;aACjB;SACD,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7D,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;YAC/C,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,SAAS,OAAO,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3E,CAAC;QACF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CACZ,kEAAkE,SAAS,YAAY,KAAK,CAAC,OAAO,EAAE,CACtG,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,KAA2B,EAAE,KAAmB;QAC/E,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,SAAS,OAAO,CAAC,CAAC;QAC7E,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACzF,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CACZ,2DAA2D,SAAS,YAAY,KAAK,CAAC,OAAO,EAAE,CAC/F,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,16 @@
1
+ declare class SecurityKeyManager {
2
+ private static instance;
3
+ private keyData;
4
+ private decryptedPrivateKey;
5
+ private constructor();
6
+ static getInstance(): SecurityKeyManager;
7
+ setupInitialKeys(): Promise<void>;
8
+ private loadKeys;
9
+ getPublicKey(): string | null;
10
+ private getPrivateKey;
11
+ signPayload(payload: object): string;
12
+ verifyPayload(payload: object, signature: string, publicKey: string): boolean;
13
+ }
14
+ export declare const securityKeyManager: SecurityKeyManager;
15
+ export {};
16
+ //# sourceMappingURL=SecurityKeyManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityKeyManager.d.ts","sourceRoot":"","sources":["../../src/managers/SecurityKeyManager.ts"],"names":[],"mappings":"AAYA,cAAM,kBAAkB;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,mBAAmB,CAAuB;IAElD,OAAO;WAIO,WAAW,IAAI,kBAAkB;IAOlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;YA4BhC,QAAQ;IAQf,YAAY,IAAI,MAAM,GAAG,IAAI;IAIpC,OAAO,CAAC,aAAa;IAkBd,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQpC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAMpF;AAED,eAAO,MAAM,kBAAkB,oBAAmC,CAAC"}
@@ -0,0 +1 @@
1
+ import{promises as fs}from"fs";import path from"path";import crypto from"crypto";import Cryptr from"cryptr";import{appPaths}from"../utils/AppPaths";import{configService}from"../services/ConfigService";class SecurityKeyManager{static instance;keyData=null;decryptedPrivateKey=null;constructor(){this.loadKeys()}static getInstance(){return SecurityKeyManager.instance||(SecurityKeyManager.instance=new SecurityKeyManager),SecurityKeyManager.instance}async setupInitialKeys(){const keyPair=crypto.generateKeyPairSync("ed25519",{privateKeyEncoding:{type:"pkcs8",format:"pem"},publicKeyEncoding:{type:"spki",format:"pem"}}),encryptedPrivateKey=new Cryptr(configService.config.SECRET).encrypt(keyPair.privateKey),newKeyData={publicKey:keyPair.publicKey,encryptedPrivateKey:encryptedPrivateKey},keysPath=path.join(appPaths.getDataDir(),"keys.json");try{await fs.access(keysPath)}catch(error){await fs.writeFile(keysPath,JSON.stringify(newKeyData,null,2),{mode:384})}this.keyData=newKeyData}async loadKeys(){try{const keysPath=path.join(appPaths.getDataDir(),"keys.json"),fileContent=await fs.readFile(keysPath,"utf-8");this.keyData=JSON.parse(fileContent)}catch(error){}}getPublicKey(){return this.keyData?.publicKey||null}getPrivateKey(){if(this.decryptedPrivateKey)return this.decryptedPrivateKey;if(!this.keyData)throw new Error("Keys are not loaded.");try{const cryptr=new Cryptr(configService.config.SECRET);return this.decryptedPrivateKey=cryptr.decrypt(this.keyData.encryptedPrivateKey),this.decryptedPrivateKey}catch(error){throw new Error("Failed to decrypt private key. The master SECRET may have changed.")}}signPayload(payload){const privateKey=this.getPrivateKey(),dataToSign=Buffer.from(JSON.stringify(payload));return crypto.sign(null,dataToSign,privateKey).toString("base64")}verifyPayload(payload,signature,publicKey){const dataToVerify=Buffer.from(JSON.stringify(payload)),signatureBuffer=Buffer.from(signature,"base64");return crypto.verify(null,dataToVerify,publicKey,signatureBuffer)}}export const securityKeyManager=SecurityKeyManager.getInstance();