@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.
- package/CHANGELOG.md +3 -0
- package/LICENSE +202 -0
- package/README.md +1 -0
- package/dist/controllers/BackupController.d.ts +14 -0
- package/dist/controllers/BackupController.d.ts.map +1 -0
- package/dist/controllers/BackupController.js +1 -0
- package/dist/controllers/BackupController.js.map +1 -0
- package/dist/controllers/DeviceController.d.ts +14 -0
- package/dist/controllers/DeviceController.d.ts.map +1 -0
- package/dist/controllers/DeviceController.js +1 -0
- package/dist/controllers/DeviceController.js.map +1 -0
- package/dist/controllers/PlanController.d.ts +20 -0
- package/dist/controllers/PlanController.d.ts.map +1 -0
- package/dist/controllers/PlanController.js +1 -0
- package/dist/controllers/PlanController.js.map +1 -0
- package/dist/controllers/RestoreController.d.ts +15 -0
- package/dist/controllers/RestoreController.d.ts.map +1 -0
- package/dist/controllers/RestoreController.js +1 -0
- package/dist/controllers/RestoreController.js.map +1 -0
- package/dist/controllers/SettingsController.d.ts +13 -0
- package/dist/controllers/SettingsController.d.ts.map +1 -0
- package/dist/controllers/SettingsController.js +1 -0
- package/dist/controllers/SettingsController.js.map +1 -0
- package/dist/controllers/StorageController.d.ts +15 -0
- package/dist/controllers/StorageController.d.ts.map +1 -0
- package/dist/controllers/StorageController.js +1 -0
- package/dist/controllers/StorageController.js.map +1 -0
- package/dist/controllers/UserController.d.ts +7 -0
- package/dist/controllers/UserController.d.ts.map +1 -0
- package/dist/controllers/UserController.js +1 -0
- package/dist/controllers/UserController.js.map +1 -0
- package/dist/createApp.d.ts +5 -0
- package/dist/createApp.d.ts.map +1 -0
- package/dist/createApp.js +1 -0
- package/dist/createApp.js.map +1 -0
- package/dist/db/index.d.ts +1758 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +1 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate.d.ts +2 -0
- package/dist/db/migrate.d.ts.map +1 -0
- package/dist/db/migrate.js +1 -0
- package/dist/db/migrate.js.map +1 -0
- package/dist/db/schema/backups.d.ts +1702 -0
- package/dist/db/schema/backups.d.ts.map +1 -0
- package/dist/db/schema/backups.js +1 -0
- package/dist/db/schema/backups.js.map +1 -0
- package/dist/db/schema/devices.d.ts +1424 -0
- package/dist/db/schema/devices.d.ts.map +1 -0
- package/dist/db/schema/devices.js +1 -0
- package/dist/db/schema/devices.js.map +1 -0
- package/dist/db/schema/plans.d.ts +1280 -0
- package/dist/db/schema/plans.d.ts.map +1 -0
- package/dist/db/schema/plans.js +1 -0
- package/dist/db/schema/plans.js.map +1 -0
- package/dist/db/schema/restores.d.ts +1354 -0
- package/dist/db/schema/restores.d.ts.map +1 -0
- package/dist/db/schema/restores.js +1 -0
- package/dist/db/schema/restores.js.map +1 -0
- package/dist/db/schema/settings.d.ts +373 -0
- package/dist/db/schema/settings.d.ts.map +1 -0
- package/dist/db/schema/settings.js +1 -0
- package/dist/db/schema/settings.js.map +1 -0
- package/dist/db/schema/storages.d.ts +763 -0
- package/dist/db/schema/storages.d.ts.map +1 -0
- package/dist/db/schema/storages.js +1 -0
- package/dist/db/schema/storages.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/JobProcessor.d.ts +64 -0
- package/dist/jobs/JobProcessor.d.ts.map +1 -0
- package/dist/jobs/JobProcessor.js +1 -0
- package/dist/jobs/JobProcessor.js.map +1 -0
- package/dist/jobs/JobQueue.d.ts +62 -0
- package/dist/jobs/JobQueue.d.ts.map +1 -0
- package/dist/jobs/JobQueue.js +1 -0
- package/dist/jobs/JobQueue.js.map +1 -0
- package/dist/jobs/SystemTaskManager.d.ts +26 -0
- package/dist/jobs/SystemTaskManager.d.ts.map +1 -0
- package/dist/jobs/SystemTaskManager.js +1 -0
- package/dist/jobs/SystemTaskManager.js.map +1 -0
- package/dist/jobs/index.d.ts +1 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/systemJobs.d.ts +3 -0
- package/dist/jobs/systemJobs.d.ts.map +1 -0
- package/dist/jobs/systemJobs.js +1 -0
- package/dist/jobs/systemJobs.js.map +1 -0
- package/dist/jobs/tasks/AbstractTask.d.ts +6 -0
- package/dist/jobs/tasks/AbstractTask.d.ts.map +1 -0
- package/dist/jobs/tasks/AbstractTask.js +1 -0
- package/dist/jobs/tasks/AbstractTask.js.map +1 -0
- package/dist/jobs/tasks/BackupTask.d.ts +10 -0
- package/dist/jobs/tasks/BackupTask.d.ts.map +1 -0
- package/dist/jobs/tasks/BackupTask.js +1 -0
- package/dist/jobs/tasks/BackupTask.js.map +1 -0
- package/dist/jobs/tasks/CleanDownloadsTask.d.ts +7 -0
- package/dist/jobs/tasks/CleanDownloadsTask.d.ts.map +1 -0
- package/dist/jobs/tasks/CleanDownloadsTask.js +1 -0
- package/dist/jobs/tasks/CleanDownloadsTask.js.map +1 -0
- package/dist/jobs/tasks/PruneDatabaseTask.d.ts +1 -0
- package/dist/jobs/tasks/PruneDatabaseTask.d.ts.map +1 -0
- package/dist/jobs/tasks/PruneDatabaseTask.js +1 -0
- package/dist/jobs/tasks/PruneDatabaseTask.js.map +1 -0
- package/dist/jobs/tasks/RestoreTask.d.ts +10 -0
- package/dist/jobs/tasks/RestoreTask.d.ts.map +1 -0
- package/dist/jobs/tasks/RestoreTask.js +1 -0
- package/dist/jobs/tasks/RestoreTask.js.map +1 -0
- package/dist/jobs/tasks/UpdateDevicesTask.d.ts +1 -0
- package/dist/jobs/tasks/UpdateDevicesTask.d.ts.map +1 -0
- package/dist/jobs/tasks/UpdateDevicesTask.js +1 -0
- package/dist/jobs/tasks/UpdateDevicesTask.js.map +1 -0
- package/dist/managers/BaseBackupManager.d.ts +93 -0
- package/dist/managers/BaseBackupManager.d.ts.map +1 -0
- package/dist/managers/BaseBackupManager.js +1 -0
- package/dist/managers/BaseBackupManager.js.map +1 -0
- package/dist/managers/BaseRestoreManager.d.ts +24 -0
- package/dist/managers/BaseRestoreManager.d.ts.map +1 -0
- package/dist/managers/BaseRestoreManager.js +1 -0
- package/dist/managers/BaseRestoreManager.js.map +1 -0
- package/dist/managers/BaseSnapshotManager.d.ts +36 -0
- package/dist/managers/BaseSnapshotManager.d.ts.map +1 -0
- package/dist/managers/BaseSnapshotManager.js +1 -0
- package/dist/managers/BaseSnapshotManager.js.map +1 -0
- package/dist/managers/BaseStorageManager.d.ts +16 -0
- package/dist/managers/BaseStorageManager.d.ts.map +1 -0
- package/dist/managers/BaseStorageManager.js +1 -0
- package/dist/managers/BaseStorageManager.js.map +1 -0
- package/dist/managers/BaseSystemManager.d.ts +86 -0
- package/dist/managers/BaseSystemManager.d.ts.map +1 -0
- package/dist/managers/BaseSystemManager.js +1 -0
- package/dist/managers/BaseSystemManager.js.map +1 -0
- package/dist/managers/CronManager.d.ts +35 -0
- package/dist/managers/CronManager.d.ts.map +1 -0
- package/dist/managers/CronManager.js +1 -0
- package/dist/managers/CronManager.js.map +1 -0
- package/dist/managers/ProcessManager.d.ts +9 -0
- package/dist/managers/ProcessManager.d.ts.map +1 -0
- package/dist/managers/ProcessManager.js +1 -0
- package/dist/managers/ProcessManager.js.map +1 -0
- package/dist/managers/ProgressManager.d.ts +85 -0
- package/dist/managers/ProgressManager.d.ts.map +1 -0
- package/dist/managers/ProgressManager.js +1 -0
- package/dist/managers/ProgressManager.js.map +1 -0
- package/dist/managers/RestoreStatsManager.d.ts +9 -0
- package/dist/managers/RestoreStatsManager.d.ts.map +1 -0
- package/dist/managers/RestoreStatsManager.js +1 -0
- package/dist/managers/RestoreStatsManager.js.map +1 -0
- package/dist/managers/SecurityKeyManager.d.ts +16 -0
- package/dist/managers/SecurityKeyManager.d.ts.map +1 -0
- package/dist/managers/SecurityKeyManager.js +1 -0
- package/dist/managers/SecurityKeyManager.js.map +1 -0
- package/dist/managers/handlers/BackupHandler.d.ts +124 -0
- package/dist/managers/handlers/BackupHandler.d.ts.map +1 -0
- package/dist/managers/handlers/BackupHandler.js +1 -0
- package/dist/managers/handlers/BackupHandler.js.map +1 -0
- package/dist/managers/handlers/DownloadHandler.d.ts +13 -0
- package/dist/managers/handlers/DownloadHandler.d.ts.map +1 -0
- package/dist/managers/handlers/DownloadHandler.js +1 -0
- package/dist/managers/handlers/DownloadHandler.js.map +1 -0
- package/dist/managers/handlers/PruneHandler.d.ts +11 -0
- package/dist/managers/handlers/PruneHandler.d.ts.map +1 -0
- package/dist/managers/handlers/PruneHandler.js +1 -0
- package/dist/managers/handlers/PruneHandler.js.map +1 -0
- package/dist/managers/handlers/RestoreHandler.d.ts +67 -0
- package/dist/managers/handlers/RestoreHandler.d.ts.map +1 -0
- package/dist/managers/handlers/RestoreHandler.js +1 -0
- package/dist/managers/handlers/RestoreHandler.js.map +1 -0
- package/dist/managers/index.d.ts +3 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/managers/index.js +1 -0
- package/dist/managers/index.js.map +1 -0
- package/dist/middlewares/authMiddleware.d.ts +4 -0
- package/dist/middlewares/authMiddleware.d.ts.map +1 -0
- package/dist/middlewares/authMiddleware.js +1 -0
- package/dist/middlewares/authMiddleware.js.map +1 -0
- package/dist/middlewares/errorHandlerMiddleware.d.ts +5 -0
- package/dist/middlewares/errorHandlerMiddleware.d.ts.map +1 -0
- package/dist/middlewares/errorHandlerMiddleware.js +1 -0
- package/dist/middlewares/errorHandlerMiddleware.js.map +1 -0
- package/dist/middlewares/versionMiddleware.d.ts +6 -0
- package/dist/middlewares/versionMiddleware.d.ts.map +1 -0
- package/dist/middlewares/versionMiddleware.js +1 -0
- package/dist/middlewares/versionMiddleware.js.map +1 -0
- package/dist/notifications/BackupNotification.d.ts +24 -0
- package/dist/notifications/BackupNotification.d.ts.map +1 -0
- package/dist/notifications/BackupNotification.js +1 -0
- package/dist/notifications/BackupNotification.js.map +1 -0
- package/dist/notifications/BaseNotification.d.ts +20 -0
- package/dist/notifications/BaseNotification.d.ts.map +1 -0
- package/dist/notifications/BaseNotification.js +1 -0
- package/dist/notifications/BaseNotification.js.map +1 -0
- package/dist/notifications/NotificationChannel.d.ts +8 -0
- package/dist/notifications/NotificationChannel.d.ts.map +1 -0
- package/dist/notifications/NotificationChannel.js +1 -0
- package/dist/notifications/NotificationChannel.js.map +1 -0
- package/dist/notifications/NotificationManager.d.ts +8 -0
- package/dist/notifications/NotificationManager.d.ts.map +1 -0
- package/dist/notifications/NotificationManager.js +1 -0
- package/dist/notifications/NotificationManager.js.map +1 -0
- package/dist/notifications/channels/NotificationChannelResolver.d.ts +10 -0
- package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -0
- package/dist/notifications/channels/NotificationChannelResolver.js +1 -0
- package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -0
- package/dist/notifications/channels/SMTPChannel.d.ts +14 -0
- package/dist/notifications/channels/SMTPChannel.d.ts.map +1 -0
- package/dist/notifications/channels/SMTPChannel.js +1 -0
- package/dist/notifications/channels/SMTPChannel.js.map +1 -0
- package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts +22 -0
- package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -0
- package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -0
- package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -0
- package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts +20 -0
- package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -0
- package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -0
- package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -0
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts +21 -0
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -0
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -0
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -0
- package/dist/notifications/templates/email/test-email/TestEmailNotification.d.ts +14 -0
- package/dist/notifications/templates/email/test-email/TestEmailNotification.d.ts.map +1 -0
- package/dist/notifications/templates/email/test-email/TestEmailNotification.js +1 -0
- package/dist/notifications/templates/email/test-email/TestEmailNotification.js.map +1 -0
- package/dist/routes/backups.d.ts +4 -0
- package/dist/routes/backups.d.ts.map +1 -0
- package/dist/routes/backups.js +1 -0
- package/dist/routes/backups.js.map +1 -0
- package/dist/routes/devices.d.ts +4 -0
- package/dist/routes/devices.d.ts.map +1 -0
- package/dist/routes/devices.js +1 -0
- package/dist/routes/devices.js.map +1 -0
- package/dist/routes/health.d.ts +3 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +1 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/index.d.ts +9 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/plans.d.ts +4 -0
- package/dist/routes/plans.d.ts.map +1 -0
- package/dist/routes/plans.js +1 -0
- package/dist/routes/plans.js.map +1 -0
- package/dist/routes/restores.d.ts +4 -0
- package/dist/routes/restores.d.ts.map +1 -0
- package/dist/routes/restores.js +1 -0
- package/dist/routes/restores.js.map +1 -0
- package/dist/routes/settings.d.ts +4 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +1 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/storages.d.ts +4 -0
- package/dist/routes/storages.d.ts.map +1 -0
- package/dist/routes/storages.js +1 -0
- package/dist/routes/storages.js.map +1 -0
- package/dist/routes/users.d.ts +4 -0
- package/dist/routes/users.d.ts.map +1 -0
- package/dist/routes/users.js +1 -0
- package/dist/routes/users.js.map +1 -0
- package/dist/services/BackupServices.d.ts +40 -0
- package/dist/services/BackupServices.d.ts.map +1 -0
- package/dist/services/BackupServices.js +1 -0
- package/dist/services/BackupServices.js.map +1 -0
- package/dist/services/ConfigService.d.ts +40 -0
- package/dist/services/ConfigService.d.ts.map +1 -0
- package/dist/services/ConfigService.js +1 -0
- package/dist/services/ConfigService.js.map +1 -0
- package/dist/services/DeviceService.d.ts +47 -0
- package/dist/services/DeviceService.d.ts.map +1 -0
- package/dist/services/DeviceService.js +1 -0
- package/dist/services/DeviceService.js.map +1 -0
- package/dist/services/PlanService.d.ts +71 -0
- package/dist/services/PlanService.d.ts.map +1 -0
- package/dist/services/PlanService.js +1 -0
- package/dist/services/PlanService.js.map +1 -0
- package/dist/services/RestoreService.d.ts +74 -0
- package/dist/services/RestoreService.d.ts.map +1 -0
- package/dist/services/RestoreService.js +1 -0
- package/dist/services/RestoreService.js.map +1 -0
- package/dist/services/SettingsService.d.ts +20 -0
- package/dist/services/SettingsService.d.ts.map +1 -0
- package/dist/services/SettingsService.js +1 -0
- package/dist/services/SettingsService.js.map +1 -0
- package/dist/services/StorageService.d.ts +34 -0
- package/dist/services/StorageService.d.ts.map +1 -0
- package/dist/services/StorageService.js +1 -0
- package/dist/services/StorageService.js.map +1 -0
- package/dist/services/events/BackupEventService.d.ts +32 -0
- package/dist/services/events/BackupEventService.d.ts.map +1 -0
- package/dist/services/events/BackupEventService.js +1 -0
- package/dist/services/events/BackupEventService.js.map +1 -0
- package/dist/services/events/RestoreEventService.d.ts +17 -0
- package/dist/services/events/RestoreEventService.d.ts.map +1 -0
- package/dist/services/events/RestoreEventService.js +1 -0
- package/dist/services/events/RestoreEventService.js.map +1 -0
- package/dist/services/listeners/BackupEventListener.d.ts +41 -0
- package/dist/services/listeners/BackupEventListener.d.ts.map +1 -0
- package/dist/services/listeners/BackupEventListener.js +1 -0
- package/dist/services/listeners/BackupEventListener.js.map +1 -0
- package/dist/services/listeners/DownloadEventListener.d.ts +12 -0
- package/dist/services/listeners/DownloadEventListener.d.ts.map +1 -0
- package/dist/services/listeners/DownloadEventListener.js +1 -0
- package/dist/services/listeners/DownloadEventListener.js.map +1 -0
- package/dist/services/listeners/RestoreEventListener.d.ts +19 -0
- package/dist/services/listeners/RestoreEventListener.d.ts.map +1 -0
- package/dist/services/listeners/RestoreEventListener.js +1 -0
- package/dist/services/listeners/RestoreEventListener.js.map +1 -0
- package/dist/stores/BackupStore.d.ts +16 -0
- package/dist/stores/BackupStore.d.ts.map +1 -0
- package/dist/stores/BackupStore.js +1 -0
- package/dist/stores/BackupStore.js.map +1 -0
- package/dist/stores/DeviceStore.d.ts +16 -0
- package/dist/stores/DeviceStore.d.ts.map +1 -0
- package/dist/stores/DeviceStore.js +1 -0
- package/dist/stores/DeviceStore.js.map +1 -0
- package/dist/stores/PlanStore.d.ts +42 -0
- package/dist/stores/PlanStore.d.ts.map +1 -0
- package/dist/stores/PlanStore.js +1 -0
- package/dist/stores/PlanStore.js.map +1 -0
- package/dist/stores/RestoreStore.d.ts +16 -0
- package/dist/stores/RestoreStore.d.ts.map +1 -0
- package/dist/stores/RestoreStore.js +1 -0
- package/dist/stores/RestoreStore.js.map +1 -0
- package/dist/stores/SettingsStore.d.ts +85 -0
- package/dist/stores/SettingsStore.d.ts.map +1 -0
- package/dist/stores/SettingsStore.js +1 -0
- package/dist/stores/SettingsStore.js.map +1 -0
- package/dist/stores/StorageStore.d.ts +16 -0
- package/dist/stores/StorageStore.d.ts.map +1 -0
- package/dist/stores/StorageStore.js +1 -0
- package/dist/stores/StorageStore.js.map +1 -0
- package/dist/strategies/backup/BackupStrategy.d.ts +55 -0
- package/dist/strategies/backup/BackupStrategy.d.ts.map +1 -0
- package/dist/strategies/backup/BackupStrategy.js +1 -0
- package/dist/strategies/backup/BackupStrategy.js.map +1 -0
- package/dist/strategies/backup/LocalStrategy.d.ts +57 -0
- package/dist/strategies/backup/LocalStrategy.d.ts.map +1 -0
- package/dist/strategies/backup/LocalStrategy.js +1 -0
- package/dist/strategies/backup/LocalStrategy.js.map +1 -0
- package/dist/strategies/backup/RemoteStrategy.d.ts +60 -0
- package/dist/strategies/backup/RemoteStrategy.d.ts.map +1 -0
- package/dist/strategies/backup/RemoteStrategy.js +1 -0
- package/dist/strategies/backup/RemoteStrategy.js.map +1 -0
- package/dist/strategies/backup/index.d.ts +4 -0
- package/dist/strategies/backup/index.d.ts.map +1 -0
- package/dist/strategies/backup/index.js +1 -0
- package/dist/strategies/backup/index.js.map +1 -0
- package/dist/strategies/restore/LocalStrategy.d.ts +27 -0
- package/dist/strategies/restore/LocalStrategy.d.ts.map +1 -0
- package/dist/strategies/restore/LocalStrategy.js +1 -0
- package/dist/strategies/restore/LocalStrategy.js.map +1 -0
- package/dist/strategies/restore/RemoteStrategy.d.ts +37 -0
- package/dist/strategies/restore/RemoteStrategy.d.ts.map +1 -0
- package/dist/strategies/restore/RemoteStrategy.js +1 -0
- package/dist/strategies/restore/RemoteStrategy.js.map +1 -0
- package/dist/strategies/restore/RestoreStrategy.d.ts +31 -0
- package/dist/strategies/restore/RestoreStrategy.d.ts.map +1 -0
- package/dist/strategies/restore/RestoreStrategy.js +1 -0
- package/dist/strategies/restore/RestoreStrategy.js.map +1 -0
- package/dist/strategies/restore/index.d.ts +4 -0
- package/dist/strategies/restore/index.d.ts.map +1 -0
- package/dist/strategies/restore/index.js +1 -0
- package/dist/strategies/restore/index.js.map +1 -0
- package/dist/strategies/snapshot/LocalStrategy.d.ts +35 -0
- package/dist/strategies/snapshot/LocalStrategy.d.ts.map +1 -0
- package/dist/strategies/snapshot/LocalStrategy.js +1 -0
- package/dist/strategies/snapshot/LocalStrategy.js.map +1 -0
- package/dist/strategies/snapshot/RemoteStrategy.d.ts +44 -0
- package/dist/strategies/snapshot/RemoteStrategy.d.ts.map +1 -0
- package/dist/strategies/snapshot/RemoteStrategy.js +1 -0
- package/dist/strategies/snapshot/RemoteStrategy.js.map +1 -0
- package/dist/strategies/snapshot/SnapshotStrategy.d.ts +47 -0
- package/dist/strategies/snapshot/SnapshotStrategy.d.ts.map +1 -0
- package/dist/strategies/snapshot/SnapshotStrategy.js +1 -0
- package/dist/strategies/snapshot/SnapshotStrategy.js.map +1 -0
- package/dist/strategies/snapshot/index.d.ts +4 -0
- package/dist/strategies/snapshot/index.d.ts.map +1 -0
- package/dist/strategies/snapshot/index.js +1 -0
- package/dist/strategies/snapshot/index.js.map +1 -0
- package/dist/strategies/system/LocalStrategy.d.ts +63 -0
- package/dist/strategies/system/LocalStrategy.d.ts.map +1 -0
- package/dist/strategies/system/LocalStrategy.js +1 -0
- package/dist/strategies/system/LocalStrategy.js.map +1 -0
- package/dist/strategies/system/RemoteStrategy.d.ts +67 -0
- package/dist/strategies/system/RemoteStrategy.d.ts.map +1 -0
- package/dist/strategies/system/RemoteStrategy.js +1 -0
- package/dist/strategies/system/RemoteStrategy.js.map +1 -0
- package/dist/strategies/system/SystemStrategy.d.ts +69 -0
- package/dist/strategies/system/SystemStrategy.d.ts.map +1 -0
- package/dist/strategies/system/SystemStrategy.js +1 -0
- package/dist/strategies/system/SystemStrategy.js.map +1 -0
- package/dist/strategies/system/index.d.ts +4 -0
- package/dist/strategies/system/index.d.ts.map +1 -0
- package/dist/strategies/system/index.js +1 -0
- package/dist/strategies/system/index.js.map +1 -0
- package/dist/types/backups.d.ts +68 -0
- package/dist/types/backups.d.ts.map +1 -0
- package/dist/types/backups.js +1 -0
- package/dist/types/backups.js.map +1 -0
- package/dist/types/devices.d.ts +205 -0
- package/dist/types/devices.d.ts.map +1 -0
- package/dist/types/devices.js +1 -0
- package/dist/types/devices.js.map +1 -0
- package/dist/types/events.d.ts +86 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +1 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/global.d.ts +8 -0
- package/dist/types/global.d.ts.map +1 -0
- package/dist/types/global.js +1 -0
- package/dist/types/global.js.map +1 -0
- package/dist/types/notifications.d.ts +19 -0
- package/dist/types/notifications.d.ts.map +1 -0
- package/dist/types/notifications.js +1 -0
- package/dist/types/notifications.js.map +1 -0
- package/dist/types/plans.d.ts +219 -0
- package/dist/types/plans.d.ts.map +1 -0
- package/dist/types/plans.js +1 -0
- package/dist/types/plans.js.map +1 -0
- package/dist/types/rclone.d.ts +10 -0
- package/dist/types/rclone.d.ts.map +1 -0
- package/dist/types/rclone.js +1 -0
- package/dist/types/rclone.js.map +1 -0
- package/dist/types/restic.d.ts +63 -0
- package/dist/types/restic.d.ts.map +1 -0
- package/dist/types/restic.js +1 -0
- package/dist/types/restic.js.map +1 -0
- package/dist/types/restores.d.ts +54 -0
- package/dist/types/restores.d.ts.map +1 -0
- package/dist/types/restores.js +1 -0
- package/dist/types/restores.js.map +1 -0
- package/dist/types/settings.d.ts +87 -0
- package/dist/types/settings.d.ts.map +1 -0
- package/dist/types/settings.js +1 -0
- package/dist/types/settings.js.map +1 -0
- package/dist/types/source.d.ts +72 -0
- package/dist/types/source.d.ts.map +1 -0
- package/dist/types/source.js +1 -0
- package/dist/types/source.js.map +1 -0
- package/dist/types/strategy.d.ts +7 -0
- package/dist/types/strategy.d.ts.map +1 -0
- package/dist/types/strategy.js +1 -0
- package/dist/types/strategy.js.map +1 -0
- package/dist/utils/AppError.d.ts +37 -0
- package/dist/utils/AppError.d.ts.map +1 -0
- package/dist/utils/AppError.js +1 -0
- package/dist/utils/AppError.js.map +1 -0
- package/dist/utils/AppPaths.d.ts +36 -0
- package/dist/utils/AppPaths.d.ts.map +1 -0
- package/dist/utils/AppPaths.js +1 -0
- package/dist/utils/AppPaths.js.map +1 -0
- package/dist/utils/asyncHandler.d.ts +4 -0
- package/dist/utils/asyncHandler.d.ts.map +1 -0
- package/dist/utils/asyncHandler.js +1 -0
- package/dist/utils/asyncHandler.js.map +1 -0
- package/dist/utils/binaryPathResolver.d.ts +10 -0
- package/dist/utils/binaryPathResolver.d.ts.map +1 -0
- package/dist/utils/binaryPathResolver.js +1 -0
- package/dist/utils/binaryPathResolver.js.map +1 -0
- package/dist/utils/copyFiles.d.ts +12 -0
- package/dist/utils/copyFiles.d.ts.map +1 -0
- package/dist/utils/copyFiles.js +1 -0
- package/dist/utils/copyFiles.js.map +1 -0
- package/dist/utils/docker.d.ts +32 -0
- package/dist/utils/docker.d.ts.map +1 -0
- package/dist/utils/docker.js +1 -0
- package/dist/utils/docker.js.map +1 -0
- package/dist/utils/executeUserScript.d.ts +15 -0
- package/dist/utils/executeUserScript.d.ts.map +1 -0
- package/dist/utils/executeUserScript.js +1 -0
- package/dist/utils/executeUserScript.js.map +1 -0
- package/dist/utils/formatter.d.ts +39 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +1 -0
- package/dist/utils/formatter.js.map +1 -0
- package/dist/utils/getBackupSourceFiles.d.ts +7 -0
- package/dist/utils/getBackupSourceFiles.d.ts.map +1 -0
- package/dist/utils/getBackupSourceFiles.js +1 -0
- package/dist/utils/getBackupSourceFiles.js.map +1 -0
- package/dist/utils/helpers.d.ts +35 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +1 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/initSetup.d.ts +4 -0
- package/dist/utils/initSetup.d.ts.map +1 -0
- package/dist/utils/initSetup.js +1 -0
- package/dist/utils/initSetup.js.map +1 -0
- package/dist/utils/intervalToCron.d.ts +24 -0
- package/dist/utils/intervalToCron.d.ts.map +1 -0
- package/dist/utils/intervalToCron.js +1 -0
- package/dist/utils/intervalToCron.js.map +1 -0
- package/dist/utils/logger.d.ts +43 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +1 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/providers/_features.d.ts +648 -0
- package/dist/utils/providers/_features.d.ts.map +1 -0
- package/dist/utils/providers/_features.js +1 -0
- package/dist/utils/providers/_features.js.map +1 -0
- package/dist/utils/providers/_s3Options.d.ts +19 -0
- package/dist/utils/providers/_s3Options.d.ts.map +1 -0
- package/dist/utils/providers/_s3Options.js +1 -0
- package/dist/utils/providers/_s3Options.js.map +1 -0
- package/dist/utils/providers/arvan.d.ts +28 -0
- package/dist/utils/providers/arvan.d.ts.map +1 -0
- package/dist/utils/providers/arvan.js +1 -0
- package/dist/utils/providers/arvan.js.map +1 -0
- package/dist/utils/providers/azureblob.d.ts +30 -0
- package/dist/utils/providers/azureblob.d.ts.map +1 -0
- package/dist/utils/providers/azureblob.js +1 -0
- package/dist/utils/providers/azureblob.js.map +1 -0
- package/dist/utils/providers/azurefiles.d.ts +19 -0
- package/dist/utils/providers/azurefiles.d.ts.map +1 -0
- package/dist/utils/providers/azurefiles.js +1 -0
- package/dist/utils/providers/azurefiles.js.map +1 -0
- package/dist/utils/providers/b2.d.ts +30 -0
- package/dist/utils/providers/b2.d.ts.map +1 -0
- package/dist/utils/providers/b2.js +1 -0
- package/dist/utils/providers/b2.js.map +1 -0
- package/dist/utils/providers/boxCom.d.ts +30 -0
- package/dist/utils/providers/boxCom.d.ts.map +1 -0
- package/dist/utils/providers/boxCom.js +1 -0
- package/dist/utils/providers/boxCom.js.map +1 -0
- package/dist/utils/providers/ceph.d.ts +28 -0
- package/dist/utils/providers/ceph.d.ts.map +1 -0
- package/dist/utils/providers/ceph.js +1 -0
- package/dist/utils/providers/ceph.js.map +1 -0
- package/dist/utils/providers/dreamobjects.d.ts +44 -0
- package/dist/utils/providers/dreamobjects.d.ts.map +1 -0
- package/dist/utils/providers/dreamobjects.js +1 -0
- package/dist/utils/providers/dreamobjects.js.map +1 -0
- package/dist/utils/providers/dropbox.d.ts +39 -0
- package/dist/utils/providers/dropbox.d.ts.map +1 -0
- package/dist/utils/providers/dropbox.js +1 -0
- package/dist/utils/providers/dropbox.js.map +1 -0
- package/dist/utils/providers/fichier.d.ts +30 -0
- package/dist/utils/providers/fichier.d.ts.map +1 -0
- package/dist/utils/providers/fichier.js +1 -0
- package/dist/utils/providers/fichier.js.map +1 -0
- package/dist/utils/providers/filesCom.d.ts +21 -0
- package/dist/utils/providers/filesCom.d.ts.map +1 -0
- package/dist/utils/providers/filesCom.js +1 -0
- package/dist/utils/providers/filesCom.js.map +1 -0
- package/dist/utils/providers/ftp.d.ts +39 -0
- package/dist/utils/providers/ftp.d.ts.map +1 -0
- package/dist/utils/providers/ftp.js +1 -0
- package/dist/utils/providers/ftp.js.map +1 -0
- package/dist/utils/providers/gcs.d.ts +39 -0
- package/dist/utils/providers/gcs.d.ts.map +1 -0
- package/dist/utils/providers/gcs.js +1 -0
- package/dist/utils/providers/gcs.js.map +1 -0
- package/dist/utils/providers/gdrive.d.ts +39 -0
- package/dist/utils/providers/gdrive.d.ts.map +1 -0
- package/dist/utils/providers/gdrive.js +1 -0
- package/dist/utils/providers/gdrive.js.map +1 -0
- package/dist/utils/providers/gofile.d.ts +21 -0
- package/dist/utils/providers/gofile.d.ts.map +1 -0
- package/dist/utils/providers/gofile.js +1 -0
- package/dist/utils/providers/gofile.js.map +1 -0
- package/dist/utils/providers/gphotos.d.ts +39 -0
- package/dist/utils/providers/gphotos.d.ts.map +1 -0
- package/dist/utils/providers/gphotos.js +1 -0
- package/dist/utils/providers/gphotos.js.map +1 -0
- package/dist/utils/providers/hdfs.d.ts +21 -0
- package/dist/utils/providers/hdfs.d.ts.map +1 -0
- package/dist/utils/providers/hdfs.js +1 -0
- package/dist/utils/providers/hdfs.js.map +1 -0
- package/dist/utils/providers/hidrive.d.ts +39 -0
- package/dist/utils/providers/hidrive.d.ts.map +1 -0
- package/dist/utils/providers/hidrive.js +1 -0
- package/dist/utils/providers/hidrive.js.map +1 -0
- package/dist/utils/providers/http.d.ts +30 -0
- package/dist/utils/providers/http.d.ts.map +1 -0
- package/dist/utils/providers/http.js +1 -0
- package/dist/utils/providers/http.js.map +1 -0
- package/dist/utils/providers/ibmcos.d.ts +58 -0
- package/dist/utils/providers/ibmcos.d.ts.map +1 -0
- package/dist/utils/providers/ibmcos.js +1 -0
- package/dist/utils/providers/ibmcos.js.map +1 -0
- package/dist/utils/providers/idrive.d.ts +28 -0
- package/dist/utils/providers/idrive.d.ts.map +1 -0
- package/dist/utils/providers/idrive.js +1 -0
- package/dist/utils/providers/idrive.js.map +1 -0
- package/dist/utils/providers/internetarchive.d.ts +30 -0
- package/dist/utils/providers/internetarchive.d.ts.map +1 -0
- package/dist/utils/providers/internetarchive.js +1 -0
- package/dist/utils/providers/internetarchive.js.map +1 -0
- package/dist/utils/providers/ionos.d.ts +44 -0
- package/dist/utils/providers/ionos.d.ts.map +1 -0
- package/dist/utils/providers/ionos.js +1 -0
- package/dist/utils/providers/ionos.js.map +1 -0
- package/dist/utils/providers/jottacloud.d.ts +39 -0
- package/dist/utils/providers/jottacloud.d.ts.map +1 -0
- package/dist/utils/providers/jottacloud.js +1 -0
- package/dist/utils/providers/jottacloud.js.map +1 -0
- package/dist/utils/providers/koofr.d.ts +46 -0
- package/dist/utils/providers/koofr.d.ts.map +1 -0
- package/dist/utils/providers/koofr.js +1 -0
- package/dist/utils/providers/koofr.js.map +1 -0
- package/dist/utils/providers/leviia.d.ts +28 -0
- package/dist/utils/providers/leviia.d.ts.map +1 -0
- package/dist/utils/providers/leviia.js +1 -0
- package/dist/utils/providers/leviia.js.map +1 -0
- package/dist/utils/providers/liara.d.ts +28 -0
- package/dist/utils/providers/liara.d.ts.map +1 -0
- package/dist/utils/providers/liara.js +1 -0
- package/dist/utils/providers/liara.js.map +1 -0
- package/dist/utils/providers/linkbox.d.ts +21 -0
- package/dist/utils/providers/linkbox.d.ts.map +1 -0
- package/dist/utils/providers/linkbox.js +1 -0
- package/dist/utils/providers/linkbox.js.map +1 -0
- package/dist/utils/providers/linode.d.ts +44 -0
- package/dist/utils/providers/linode.d.ts.map +1 -0
- package/dist/utils/providers/linode.js +1 -0
- package/dist/utils/providers/linode.js.map +1 -0
- package/dist/utils/providers/local.d.ts +11 -0
- package/dist/utils/providers/local.d.ts.map +1 -0
- package/dist/utils/providers/local.js +1 -0
- package/dist/utils/providers/local.js.map +1 -0
- package/dist/utils/providers/lyvecloud.d.ts +44 -0
- package/dist/utils/providers/lyvecloud.d.ts.map +1 -0
- package/dist/utils/providers/lyvecloud.js +1 -0
- package/dist/utils/providers/lyvecloud.js.map +1 -0
- package/dist/utils/providers/magalu.d.ts +44 -0
- package/dist/utils/providers/magalu.d.ts.map +1 -0
- package/dist/utils/providers/magalu.js +1 -0
- package/dist/utils/providers/magalu.js.map +1 -0
- package/dist/utils/providers/mailru.d.ts +30 -0
- package/dist/utils/providers/mailru.d.ts.map +1 -0
- package/dist/utils/providers/mailru.js +1 -0
- package/dist/utils/providers/mailru.js.map +1 -0
- package/dist/utils/providers/mega.d.ts +30 -0
- package/dist/utils/providers/mega.d.ts.map +1 -0
- package/dist/utils/providers/mega.js +1 -0
- package/dist/utils/providers/mega.js.map +1 -0
- package/dist/utils/providers/minio.d.ts +28 -0
- package/dist/utils/providers/minio.d.ts.map +1 -0
- package/dist/utils/providers/minio.js +1 -0
- package/dist/utils/providers/minio.js.map +1 -0
- package/dist/utils/providers/netstorage.d.ts +21 -0
- package/dist/utils/providers/netstorage.d.ts.map +1 -0
- package/dist/utils/providers/netstorage.js +1 -0
- package/dist/utils/providers/netstorage.js.map +1 -0
- package/dist/utils/providers/obs.d.ts +44 -0
- package/dist/utils/providers/obs.d.ts.map +1 -0
- package/dist/utils/providers/obs.js +1 -0
- package/dist/utils/providers/obs.js.map +1 -0
- package/dist/utils/providers/onedrive.d.ts +46 -0
- package/dist/utils/providers/onedrive.d.ts.map +1 -0
- package/dist/utils/providers/onedrive.js +1 -0
- package/dist/utils/providers/onedrive.js.map +1 -0
- package/dist/utils/providers/opendrive.d.ts +21 -0
- package/dist/utils/providers/opendrive.d.ts.map +1 -0
- package/dist/utils/providers/opendrive.js +1 -0
- package/dist/utils/providers/opendrive.js.map +1 -0
- package/dist/utils/providers/oracle.d.ts +30 -0
- package/dist/utils/providers/oracle.d.ts.map +1 -0
- package/dist/utils/providers/oracle.js +1 -0
- package/dist/utils/providers/oracle.js.map +1 -0
- package/dist/utils/providers/oss.d.ts +58 -0
- package/dist/utils/providers/oss.d.ts.map +1 -0
- package/dist/utils/providers/oss.js +1 -0
- package/dist/utils/providers/oss.js.map +1 -0
- package/dist/utils/providers/outscale.d.ts +44 -0
- package/dist/utils/providers/outscale.d.ts.map +1 -0
- package/dist/utils/providers/outscale.js +1 -0
- package/dist/utils/providers/outscale.js.map +1 -0
- package/dist/utils/providers/pcloud.d.ts +30 -0
- package/dist/utils/providers/pcloud.d.ts.map +1 -0
- package/dist/utils/providers/pcloud.js +1 -0
- package/dist/utils/providers/pcloud.js.map +1 -0
- package/dist/utils/providers/petabox.d.ts +28 -0
- package/dist/utils/providers/petabox.d.ts.map +1 -0
- package/dist/utils/providers/petabox.js +1 -0
- package/dist/utils/providers/petabox.js.map +1 -0
- package/dist/utils/providers/pikpak.d.ts +30 -0
- package/dist/utils/providers/pikpak.d.ts.map +1 -0
- package/dist/utils/providers/pikpak.js +1 -0
- package/dist/utils/providers/pikpak.js.map +1 -0
- package/dist/utils/providers/pixeldrain.d.ts +21 -0
- package/dist/utils/providers/pixeldrain.d.ts.map +1 -0
- package/dist/utils/providers/pixeldrain.js +1 -0
- package/dist/utils/providers/pixeldrain.js.map +1 -0
- package/dist/utils/providers/premiumizeme.d.ts +30 -0
- package/dist/utils/providers/premiumizeme.d.ts.map +1 -0
- package/dist/utils/providers/premiumizeme.js +1 -0
- package/dist/utils/providers/premiumizeme.js.map +1 -0
- package/dist/utils/providers/protondrive.d.ts +30 -0
- package/dist/utils/providers/protondrive.d.ts.map +1 -0
- package/dist/utils/providers/protondrive.js +1 -0
- package/dist/utils/providers/protondrive.js.map +1 -0
- package/dist/utils/providers/putio.d.ts +30 -0
- package/dist/utils/providers/putio.d.ts.map +1 -0
- package/dist/utils/providers/putio.js +1 -0
- package/dist/utils/providers/putio.js.map +1 -0
- package/dist/utils/providers/qingstor.d.ts +30 -0
- package/dist/utils/providers/qingstor.d.ts.map +1 -0
- package/dist/utils/providers/qingstor.js +1 -0
- package/dist/utils/providers/qingstor.js.map +1 -0
- package/dist/utils/providers/qiniu.d.ts +58 -0
- package/dist/utils/providers/qiniu.d.ts.map +1 -0
- package/dist/utils/providers/qiniu.js +1 -0
- package/dist/utils/providers/qiniu.js.map +1 -0
- package/dist/utils/providers/quatrix.d.ts +30 -0
- package/dist/utils/providers/quatrix.d.ts.map +1 -0
- package/dist/utils/providers/quatrix.js +1 -0
- package/dist/utils/providers/quatrix.js.map +1 -0
- package/dist/utils/providers/r2.d.ts +28 -0
- package/dist/utils/providers/r2.d.ts.map +1 -0
- package/dist/utils/providers/r2.js +1 -0
- package/dist/utils/providers/r2.js.map +1 -0
- package/dist/utils/providers/rackcorp.d.ts +58 -0
- package/dist/utils/providers/rackcorp.d.ts.map +1 -0
- package/dist/utils/providers/rackcorp.js +1 -0
- package/dist/utils/providers/rackcorp.js.map +1 -0
- package/dist/utils/providers/rclone.d.ts +28 -0
- package/dist/utils/providers/rclone.d.ts.map +1 -0
- package/dist/utils/providers/rclone.js +1 -0
- package/dist/utils/providers/rclone.js.map +1 -0
- package/dist/utils/providers/s3.d.ts +51 -0
- package/dist/utils/providers/s3.d.ts.map +1 -0
- package/dist/utils/providers/s3.js +1 -0
- package/dist/utils/providers/s3.js.map +1 -0
- package/dist/utils/providers/scaleway.d.ts +58 -0
- package/dist/utils/providers/scaleway.d.ts.map +1 -0
- package/dist/utils/providers/scaleway.js +1 -0
- package/dist/utils/providers/scaleway.js.map +1 -0
- package/dist/utils/providers/seafile.d.ts +39 -0
- package/dist/utils/providers/seafile.d.ts.map +1 -0
- package/dist/utils/providers/seafile.js +1 -0
- package/dist/utils/providers/seafile.js.map +1 -0
- package/dist/utils/providers/seaweedfs.d.ts +28 -0
- package/dist/utils/providers/seaweedfs.d.ts.map +1 -0
- package/dist/utils/providers/seaweedfs.js +1 -0
- package/dist/utils/providers/seaweedfs.js.map +1 -0
- package/dist/utils/providers/selectel.d.ts +28 -0
- package/dist/utils/providers/selectel.d.ts.map +1 -0
- package/dist/utils/providers/selectel.js +1 -0
- package/dist/utils/providers/selectel.js.map +1 -0
- package/dist/utils/providers/sftp.d.ts +30 -0
- package/dist/utils/providers/sftp.d.ts.map +1 -0
- package/dist/utils/providers/sftp.js +1 -0
- package/dist/utils/providers/sftp.js.map +1 -0
- package/dist/utils/providers/sharefile.d.ts +30 -0
- package/dist/utils/providers/sharefile.d.ts.map +1 -0
- package/dist/utils/providers/sharefile.js +1 -0
- package/dist/utils/providers/sharefile.js.map +1 -0
- package/dist/utils/providers/sia.d.ts +21 -0
- package/dist/utils/providers/sia.d.ts.map +1 -0
- package/dist/utils/providers/sia.js +1 -0
- package/dist/utils/providers/sia.js.map +1 -0
- package/dist/utils/providers/smb.d.ts +30 -0
- package/dist/utils/providers/smb.d.ts.map +1 -0
- package/dist/utils/providers/smb.js +1 -0
- package/dist/utils/providers/smb.js.map +1 -0
- package/dist/utils/providers/spaces.d.ts +44 -0
- package/dist/utils/providers/spaces.d.ts.map +1 -0
- package/dist/utils/providers/spaces.js +1 -0
- package/dist/utils/providers/spaces.js.map +1 -0
- package/dist/utils/providers/storj.d.ts +36 -0
- package/dist/utils/providers/storj.d.ts.map +1 -0
- package/dist/utils/providers/storj.js +1 -0
- package/dist/utils/providers/storj.js.map +1 -0
- package/dist/utils/providers/sugarsync.d.ts +30 -0
- package/dist/utils/providers/sugarsync.d.ts.map +1 -0
- package/dist/utils/providers/sugarsync.js +1 -0
- package/dist/utils/providers/sugarsync.js.map +1 -0
- package/dist/utils/providers/swift.d.ts +46 -0
- package/dist/utils/providers/swift.d.ts.map +1 -0
- package/dist/utils/providers/swift.js +1 -0
- package/dist/utils/providers/swift.js.map +1 -0
- package/dist/utils/providers/synologyc2.d.ts +44 -0
- package/dist/utils/providers/synologyc2.d.ts.map +1 -0
- package/dist/utils/providers/synologyc2.js +1 -0
- package/dist/utils/providers/synologyc2.js.map +1 -0
- package/dist/utils/providers/tencent.d.ts +28 -0
- package/dist/utils/providers/tencent.d.ts.map +1 -0
- package/dist/utils/providers/tencent.js +1 -0
- package/dist/utils/providers/tencent.js.map +1 -0
- package/dist/utils/providers/ulozto.d.ts +21 -0
- package/dist/utils/providers/ulozto.d.ts.map +1 -0
- package/dist/utils/providers/ulozto.js +1 -0
- package/dist/utils/providers/ulozto.js.map +1 -0
- package/dist/utils/providers/wasabi.d.ts +58 -0
- package/dist/utils/providers/wasabi.d.ts.map +1 -0
- package/dist/utils/providers/wasabi.js +1 -0
- package/dist/utils/providers/wasabi.js.map +1 -0
- package/dist/utils/providers/webdav.d.ts +19 -0
- package/dist/utils/providers/webdav.d.ts.map +1 -0
- package/dist/utils/providers/webdav.js +1 -0
- package/dist/utils/providers/webdav.js.map +1 -0
- package/dist/utils/providers/yandex.d.ts +39 -0
- package/dist/utils/providers/yandex.d.ts.map +1 -0
- package/dist/utils/providers/yandex.js +1 -0
- package/dist/utils/providers/yandex.js.map +1 -0
- package/dist/utils/providers/zoho.d.ts +30 -0
- package/dist/utils/providers/zoho.d.ts.map +1 -0
- package/dist/utils/providers/zoho.js +1 -0
- package/dist/utils/providers/zoho.js.map +1 -0
- package/dist/utils/providers.d.ts +37 -0
- package/dist/utils/providers.d.ts.map +1 -0
- package/dist/utils/providers.js +1 -0
- package/dist/utils/providers.js.map +1 -0
- package/dist/utils/rclone/helpers.d.ts +6 -0
- package/dist/utils/rclone/helpers.d.ts.map +1 -0
- package/dist/utils/rclone/helpers.js +1 -0
- package/dist/utils/rclone/helpers.js.map +1 -0
- package/dist/utils/rclone/parsers.d.ts +5 -0
- package/dist/utils/rclone/parsers.d.ts.map +1 -0
- package/dist/utils/rclone/parsers.js +1 -0
- package/dist/utils/rclone/parsers.js.map +1 -0
- package/dist/utils/rclone/rclone.d.ts +2 -0
- package/dist/utils/rclone/rclone.d.ts.map +1 -0
- package/dist/utils/rclone/rclone.js +1 -0
- package/dist/utils/rclone/rclone.js.map +1 -0
- package/dist/utils/restic/helpers.d.ts +4 -0
- package/dist/utils/restic/helpers.d.ts.map +1 -0
- package/dist/utils/restic/helpers.js +1 -0
- package/dist/utils/restic/helpers.js.map +1 -0
- package/dist/utils/restic/restic.d.ts +15 -0
- package/dist/utils/restic/restic.d.ts.map +1 -0
- package/dist/utils/restic/restic.js +1 -0
- package/dist/utils/restic/restic.js.map +1 -0
- package/dist/utils/runCommand.d.ts +23 -0
- package/dist/utils/runCommand.d.ts.map +1 -0
- package/dist/utils/runCommand.js +1 -0
- package/dist/utils/runCommand.js.map +1 -0
- package/dist/utils/sanitizeStoragePath.d.ts +9 -0
- package/dist/utils/sanitizeStoragePath.d.ts.map +1 -0
- package/dist/utils/sanitizeStoragePath.js +1 -0
- package/dist/utils/sanitizeStoragePath.js.map +1 -0
- package/dist/utils/versions.d.ts +17 -0
- package/dist/utils/versions.d.ts.map +1 -0
- package/dist/utils/versions.js +1 -0
- package/dist/utils/versions.js.map +1 -0
- 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":"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"}
|
|
@@ -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();
|