@plutonhq/core-backend 0.0.1 → 0.0.2
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/dist/controllers/SetupController.d.ts +17 -0
- package/dist/controllers/SetupController.d.ts.map +1 -0
- package/dist/controllers/SetupController.js +1 -0
- package/dist/controllers/SetupController.js.map +1 -0
- package/dist/createApp.d.ts.map +1 -1
- package/dist/createApp.js +1 -1
- package/dist/createApp.js.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs/index.js +2 -1
- package/dist/jobs/tasks/PruneDatabaseTask.js +2 -1
- package/dist/jobs/tasks/UpdateDevicesTask.js +2 -1
- package/dist/managers/BaseBackupManager.d.ts.map +1 -1
- package/dist/managers/BaseBackupManager.js +1 -1
- package/dist/managers/BaseBackupManager.js.map +1 -1
- package/dist/managers/BaseSnapshotManager.js +1 -1
- package/dist/managers/BaseSnapshotManager.js.map +1 -1
- package/dist/managers/SecurityKeyManager.d.ts.map +1 -1
- package/dist/managers/SecurityKeyManager.js +1 -1
- package/dist/managers/SecurityKeyManager.js.map +1 -1
- package/dist/managers/handlers/BackupHandler.d.ts.map +1 -1
- package/dist/managers/handlers/BackupHandler.js +1 -1
- package/dist/managers/handlers/BackupHandler.js.map +1 -1
- package/dist/managers/handlers/DownloadHandler.d.ts.map +1 -1
- package/dist/managers/handlers/DownloadHandler.js +1 -1
- package/dist/managers/handlers/DownloadHandler.js.map +1 -1
- package/dist/managers/handlers/PruneHandler.d.ts.map +1 -1
- package/dist/managers/handlers/PruneHandler.js +1 -1
- package/dist/managers/handlers/PruneHandler.js.map +1 -1
- package/dist/managers/handlers/RestoreHandler.d.ts.map +1 -1
- package/dist/managers/handlers/RestoreHandler.js +1 -1
- package/dist/managers/handlers/RestoreHandler.js.map +1 -1
- package/dist/middlewares/authMiddleware.js +1 -1
- package/dist/middlewares/errorHandlerMiddleware.js +1 -1
- package/dist/middlewares/versionMiddleware.d.ts.map +1 -1
- package/dist/middlewares/versionMiddleware.js +1 -1
- package/dist/middlewares/versionMiddleware.js.map +1 -1
- package/dist/routes/devices.js +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/setup.d.ts +4 -0
- package/dist/routes/setup.d.ts.map +1 -0
- package/dist/routes/setup.js +1 -0
- package/dist/routes/setup.js.map +1 -0
- package/dist/services/ConfigService.d.ts +62 -8
- package/dist/services/ConfigService.d.ts.map +1 -1
- package/dist/services/ConfigService.js +1 -1
- package/dist/services/ConfigService.js.map +1 -1
- package/dist/services/KeyringService.d.ts +81 -0
- package/dist/services/KeyringService.d.ts.map +1 -0
- package/dist/services/KeyringService.js +1 -0
- package/dist/services/KeyringService.js.map +1 -0
- package/dist/utils/AppPaths.d.ts +10 -0
- package/dist/utils/AppPaths.d.ts.map +1 -1
- package/dist/utils/AppPaths.js +1 -1
- package/dist/utils/AppPaths.js.map +1 -1
- package/dist/utils/asyncHandler.js +1 -1
- package/dist/utils/binaryPathResolver.d.ts +7 -3
- package/dist/utils/binaryPathResolver.d.ts.map +1 -1
- package/dist/utils/binaryPathResolver.js +1 -1
- package/dist/utils/binaryPathResolver.js.map +1 -1
- package/dist/utils/copyFiles.js +1 -1
- package/dist/utils/executeUserScript.d.ts +1 -1
- package/dist/utils/executeUserScript.d.ts.map +1 -1
- package/dist/utils/initSetup.js +1 -1
- package/dist/utils/installHelpers.d.ts +36 -0
- package/dist/utils/installHelpers.d.ts.map +1 -0
- package/dist/utils/installHelpers.js +1 -0
- package/dist/utils/installHelpers.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/providers/_features.js +1 -1
- package/dist/utils/providers/_s3Options.js +1 -1
- package/dist/utils/providers/azureblob.js +1 -1
- package/dist/utils/providers/azurefiles.js +1 -1
- package/dist/utils/providers/b2.js +1 -1
- package/dist/utils/providers/boxCom.js +1 -1
- package/dist/utils/providers/dropbox.js +1 -1
- package/dist/utils/providers/fichier.js +1 -1
- package/dist/utils/providers/filesCom.js +1 -1
- package/dist/utils/providers/ftp.js +1 -1
- package/dist/utils/providers/gcs.js +1 -1
- package/dist/utils/providers/gdrive.js +1 -1
- package/dist/utils/providers/gofile.js +1 -1
- package/dist/utils/providers/gphotos.js +1 -1
- package/dist/utils/providers/hdfs.js +1 -1
- package/dist/utils/providers/hidrive.js +1 -1
- package/dist/utils/providers/http.js +1 -1
- package/dist/utils/providers/internetarchive.js +1 -1
- package/dist/utils/providers/jottacloud.js +1 -1
- package/dist/utils/providers/koofr.js +1 -1
- package/dist/utils/providers/linkbox.js +1 -1
- package/dist/utils/providers/local.js +1 -1
- package/dist/utils/providers/mailru.js +1 -1
- package/dist/utils/providers/mega.js +1 -1
- package/dist/utils/providers/netstorage.js +1 -1
- package/dist/utils/providers/onedrive.js +1 -1
- package/dist/utils/providers/opendrive.js +1 -1
- package/dist/utils/providers/oracle.js +1 -1
- package/dist/utils/providers/pcloud.js +1 -1
- package/dist/utils/providers/pikpak.js +1 -1
- package/dist/utils/providers/pixeldrain.js +1 -1
- package/dist/utils/providers/premiumizeme.js +1 -1
- package/dist/utils/providers/protondrive.js +1 -1
- package/dist/utils/providers/putio.js +1 -1
- package/dist/utils/providers/qingstor.js +1 -1
- package/dist/utils/providers/quatrix.js +1 -1
- package/dist/utils/providers/seafile.js +1 -1
- package/dist/utils/providers/sftp.js +1 -1
- package/dist/utils/providers/sharefile.js +1 -1
- package/dist/utils/providers/sia.js +1 -1
- package/dist/utils/providers/smb.js +1 -1
- package/dist/utils/providers/storj.js +1 -1
- package/dist/utils/providers/sugarsync.js +1 -1
- package/dist/utils/providers/swift.js +1 -1
- package/dist/utils/providers/ulozto.js +1 -1
- package/dist/utils/providers/webdav.js +1 -1
- package/dist/utils/providers/yandex.js +1 -1
- package/dist/utils/providers/zoho.js +1 -1
- package/dist/utils/rclone/rclone.d.ts.map +1 -1
- package/dist/utils/rclone/rclone.js +1 -1
- package/dist/utils/rclone/rclone.js.map +1 -1
- package/dist/utils/restic/restic.d.ts.map +1 -1
- package/dist/utils/restic/restic.js +1 -1
- package/dist/utils/restic/restic.js.map +1 -1
- package/package.json +19 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Request, Response } from 'express';
|
|
2
|
+
export declare class SetupController {
|
|
3
|
+
/**
|
|
4
|
+
* Get the current setup status
|
|
5
|
+
*/
|
|
6
|
+
getStatus(req: Request, res: Response): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Complete the initial setup with credentials
|
|
9
|
+
* This endpoint stores credentials in the OS keyring and initializes the app
|
|
10
|
+
*/
|
|
11
|
+
completeSetup(req: Request, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Check if keyring is available on this system
|
|
14
|
+
*/
|
|
15
|
+
checkKeyringAvailability(req: Request, res: Response): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=SetupController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupController.d.ts","sourceRoot":"","sources":["../../src/controllers/SetupController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQ5C,qBAAa,eAAe;IAC3B;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAuB3C;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IA2F/C;;OAEG;IACG,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;CAoB1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{keyringService}from"../services/KeyringService";import{configService}from"../services/ConfigService";import{requiresKeyringSetup,isBinaryMode}from"../utils/installHelpers";import{initSetup}from"../utils/initSetup";import{db}from"../db";export class SetupController{async getStatus(req,res){try{const isSetupPending=configService.isSetupPending(),isBinary=isBinaryMode(),requiresKeyring=requiresKeyringSetup();res.json({success:!0,data:{setupPending:isSetupPending,isBinary:isBinary,requiresKeyringSetup:requiresKeyring,platform:process.platform}})}catch(error){res.status(500).json({success:!1,error:error.message||"Failed to get setup status"})}}async completeSetup(req,res){try{if(!configService.isSetupPending())return res.status(400).json({success:!1,error:"Setup is not pending. Application is already configured."});if(!requiresKeyringSetup())return res.status(400).json({success:!1,error:"Keyring setup is only available on Windows and macOS binary installations."});const{encryptionKey:encryptionKey,userName:userName,userPassword:userPassword}=req.body;if(!encryptionKey||!userName||!userPassword)return res.status(400).json({success:!1,error:"Missing required fields: encryptionKey, userName, userPassword"});if(encryptionKey.length<12)return res.status(400).json({success:!1,error:"Encryption key must be at least 12 characters long"});if(userName.length<1)return res.status(400).json({success:!1,error:"Username cannot be empty"});if(userPassword.length<1)return res.status(400).json({success:!1,error:"Password cannot be empty"});const credentials={ENCRYPTION_KEY:encryptionKey,USER_NAME:userName,USER_PASSWORD:userPassword};if(!await keyringService.setAllCredentials(credentials))return res.status(500).json({success:!1,error:"Failed to store credentials in the system keyring"});configService.completeSetup({ENCRYPTION_KEY:encryptionKey,USER_NAME:userName,USER_PASSWORD:userPassword}),await initSetup(db),res.json({success:!0,message:"Setup completed successfully. Credentials stored securely."})}catch(error){res.status(500).json({success:!1,error:error.message||"Failed to complete setup"})}}async checkKeyringAvailability(req,res){try{const isSupported=keyringService.isPlatformSupported(),isAvailable=await keyringService.waitForInitialization();res.json({success:!0,data:{platformSupported:isSupported,keyringAvailable:isAvailable,platform:process.platform}})}catch(error){res.status(500).json({success:!1,error:error.message||"Failed to check keyring availability"})}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupController.js","sourceRoot":"","sources":["../../src/controllers/SetupController.ts"],"names":[],"mappings":"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"}
|
package/dist/createApp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../src/createApp.ts"],"names":[],"mappings":"AAEA,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../src/createApp.ts"],"names":[],"mappings":"AAEA,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAgDhD,wBAAsB,SAAS,IAAI,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CA0I3D"}
|
package/dist/createApp.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import path from"path";import{fileURLToPath}from"url";import express from"express";import cors from"cors";import rateLimit from"express-rate-limit";import{db}from"./db";import{createPlanRouter}from"./routes/plans";import{createDeviceRouter}from"./routes/devices";import{createStorageRouter}from"./routes/storages";import{createRestoreRouter}from"./routes/restores";import{createUserRouter}from"./routes/users";import{createSettingsRouter}from"./routes/settings";import{createHealthRouter}from"./routes/health";import{PlanController}from"./controllers/PlanController";import{DeviceController}from"./controllers/DeviceController";import{StorageController}from"./controllers/StorageController";import{RestoreController}from"./controllers/RestoreController";import{UserController}from"./controllers/UserController";import{SettingsController}from"./controllers/SettingsController";import{createBackupRouter}from"./routes/backups";import{BackupController}from"./controllers/BackupController";import versionMiddleware from"./middlewares/versionMiddleware";import{PlanStore}from"./stores/PlanStore";import{BackupStore}from"./stores/BackupStore";import{PlanService}from"./services/PlanService";import{RestoreStore}from"./stores/RestoreStore";import{SettingsStore}from"./stores/SettingsStore";import{StorageStore}from"./stores/StorageStore";import{DeviceStore}from"./stores/DeviceStore";import{BaseBackupManager}from"./managers";import{BackupEventListener}from"./services/listeners/BackupEventListener";import{BackupService}from"./services/BackupServices";import{BaseSnapshotManager}from"./managers/BaseSnapshotManager";import{RestoreService}from"./services/RestoreService";import{RestoreEventListener}from"./services/listeners/RestoreEventListener";import{DownloadEventListener}from"./services/listeners/DownloadEventListener";import{DeviceService}from"./services/DeviceService";import{BaseSystemManager}from"./managers/BaseSystemManager";import{BaseStorageManager}from"./managers/BaseStorageManager";import{StorageService}from"./services/StorageService";import{SettingsService}from"./services/SettingsService";import{systemTaskManager}from"./jobs/SystemTaskManager";import{jobProcessor}from"./jobs/JobProcessor";import{initializeLogger}from"./utils/logger";import{configService}from"./services/ConfigService";import{BaseRestoreManager}from"./managers/BaseRestoreManager";export async function createApp(){initializeLogger();const planStore=new PlanStore(db),backupStore=new BackupStore(db),storageStore=new StorageStore(db),deviceStore=new DeviceStore(db),restoreStore=new RestoreStore(db),settingsStore=new SettingsStore(db),localPlanAgent=new BaseBackupManager,localBackupAgent=new BaseSnapshotManager,localRestoreAgent=new BaseRestoreManager,localSystemAgent=new BaseSystemManager,localStorageAgent=new BaseStorageManager;new BackupEventListener(localPlanAgent,planStore,backupStore),new RestoreEventListener(localRestoreAgent,planStore,backupStore,restoreStore),new DownloadEventListener(localBackupAgent,backupStore);const planService=new PlanService(localPlanAgent,planStore,backupStore,storageStore,deviceStore,null),backupService=new BackupService(localBackupAgent,localPlanAgent,planStore,backupStore,restoreStore,storageStore,null),restoreService=new RestoreService(localRestoreAgent,planStore,backupStore,restoreStore,storageStore,null),deviceService=new DeviceService(localSystemAgent,deviceStore,planStore,storageStore,null),storageService=new StorageService(localStorageAgent,localSystemAgent,storageStore,planStore,null),settingsService=new SettingsService(settingsStore),planController=new PlanController(planService),backupController=new BackupController(backupService),restoreController=new RestoreController(restoreService),deviceController=new DeviceController(deviceService),storageController=new StorageController(storageService),settingsController=new SettingsController(settingsService),userController=new UserController,app=express();app.use(cors({origin:[process.env.APP_URL,configService.config.APP_URL||"http://mypluton.com"],credentials:!0,methods:["GET","POST","PUT","DELETE","OPTIONS"],exposedHeaders:["X-App-Version","X-Server-OS"]})),app.use(versionMiddleware),app.use(express.json());const __filename=fileURLToPath(import.meta.url),__dirname=path.dirname(__filename),publicPath=path.join(__dirname,"..","public");app.use(express.static(publicPath));const apiLimiter=rateLimit({windowMs:9e5,max:500,standardHeaders:!0,legacyHeaders:!1});return app.use("/api/",apiLimiter),app.use("/api/user",createUserRouter(userController)),app.use("/api/plans",createPlanRouter(planController)),app.use("/api/backups",createBackupRouter(backupController)),app.use("/api/devices",createDeviceRouter(deviceController)),app.use("/api/storages",createStorageRouter(storageController)),app.use("/api/restores",createRestoreRouter(restoreController)),app.use("/api/settings",createSettingsRouter(settingsController)),app.use("/api/health",createHealthRouter()),app.get("*",(req,res)=>{res.sendFile(path.join(publicPath,"index.html"))}),systemTaskManager.initialize(),jobProcessor.registerTasks({backupManager:localPlanAgent,restoreManager:localRestoreAgent}),jobProcessor.start(),{app:app}}
|
|
1
|
+
import path from"path";import{fileURLToPath}from"url";import express from"express";import cors from"cors";import rateLimit from"express-rate-limit";import{db}from"./db";import{createPlanRouter}from"./routes/plans";import{createDeviceRouter}from"./routes/devices";import{createStorageRouter}from"./routes/storages";import{createRestoreRouter}from"./routes/restores";import{createUserRouter}from"./routes/users";import{createSettingsRouter}from"./routes/settings";import{createHealthRouter}from"./routes/health";import{createSetupRouter}from"./routes/setup";import{PlanController}from"./controllers/PlanController";import{DeviceController}from"./controllers/DeviceController";import{StorageController}from"./controllers/StorageController";import{RestoreController}from"./controllers/RestoreController";import{UserController}from"./controllers/UserController";import{SettingsController}from"./controllers/SettingsController";import{SetupController}from"./controllers/SetupController";import{createBackupRouter}from"./routes/backups";import{BackupController}from"./controllers/BackupController";import versionMiddleware from"./middlewares/versionMiddleware";import{PlanStore}from"./stores/PlanStore";import{BackupStore}from"./stores/BackupStore";import{PlanService}from"./services/PlanService";import{RestoreStore}from"./stores/RestoreStore";import{SettingsStore}from"./stores/SettingsStore";import{StorageStore}from"./stores/StorageStore";import{DeviceStore}from"./stores/DeviceStore";import{BaseBackupManager}from"./managers";import{BackupEventListener}from"./services/listeners/BackupEventListener";import{BackupService}from"./services/BackupServices";import{BaseSnapshotManager}from"./managers/BaseSnapshotManager";import{RestoreService}from"./services/RestoreService";import{RestoreEventListener}from"./services/listeners/RestoreEventListener";import{DownloadEventListener}from"./services/listeners/DownloadEventListener";import{DeviceService}from"./services/DeviceService";import{BaseSystemManager}from"./managers/BaseSystemManager";import{BaseStorageManager}from"./managers/BaseStorageManager";import{StorageService}from"./services/StorageService";import{SettingsService}from"./services/SettingsService";import{systemTaskManager}from"./jobs/SystemTaskManager";import{jobProcessor}from"./jobs/JobProcessor";import{initializeLogger}from"./utils/logger";import{configService}from"./services/ConfigService";import{BaseRestoreManager}from"./managers/BaseRestoreManager";export async function createApp(){initializeLogger();const planStore=new PlanStore(db),backupStore=new BackupStore(db),storageStore=new StorageStore(db),deviceStore=new DeviceStore(db),restoreStore=new RestoreStore(db),settingsStore=new SettingsStore(db),localPlanAgent=new BaseBackupManager,localBackupAgent=new BaseSnapshotManager,localRestoreAgent=new BaseRestoreManager,localSystemAgent=new BaseSystemManager,localStorageAgent=new BaseStorageManager;new BackupEventListener(localPlanAgent,planStore,backupStore),new RestoreEventListener(localRestoreAgent,planStore,backupStore,restoreStore),new DownloadEventListener(localBackupAgent,backupStore);const planService=new PlanService(localPlanAgent,planStore,backupStore,storageStore,deviceStore,null),backupService=new BackupService(localBackupAgent,localPlanAgent,planStore,backupStore,restoreStore,storageStore,null),restoreService=new RestoreService(localRestoreAgent,planStore,backupStore,restoreStore,storageStore,null),deviceService=new DeviceService(localSystemAgent,deviceStore,planStore,storageStore,null),storageService=new StorageService(localStorageAgent,localSystemAgent,storageStore,planStore,null),settingsService=new SettingsService(settingsStore),planController=new PlanController(planService),backupController=new BackupController(backupService),restoreController=new RestoreController(restoreService),deviceController=new DeviceController(deviceService),storageController=new StorageController(storageService),settingsController=new SettingsController(settingsService),userController=new UserController,setupController=new SetupController,app=express();app.use(cors({origin:[process.env.APP_URL,configService.config.APP_URL||"http://mypluton.com"],credentials:!0,methods:["GET","POST","PUT","DELETE","OPTIONS"],exposedHeaders:["X-App-Version","X-Server-OS"]})),app.use(versionMiddleware),app.use(express.json());const __filename=fileURLToPath(import.meta.url),__dirname=path.dirname(__filename),publicPath=path.join(__dirname,"..","public");app.use(express.static(publicPath));const apiLimiter=rateLimit({windowMs:9e5,max:500,standardHeaders:!0,legacyHeaders:!1});return app.use("/api/",apiLimiter),app.use("/api/setup",createSetupRouter(setupController)),app.use("/api/user",createUserRouter(userController)),app.use("/api/plans",createPlanRouter(planController)),app.use("/api/backups",createBackupRouter(backupController)),app.use("/api/devices",createDeviceRouter(deviceController)),app.use("/api/storages",createStorageRouter(storageController)),app.use("/api/restores",createRestoreRouter(restoreController)),app.use("/api/settings",createSettingsRouter(settingsController)),app.use("/api/health",createHealthRouter()),app.get("*",(req,res)=>{res.sendFile(path.join(publicPath,"index.html"))}),systemTaskManager.initialize(),jobProcessor.registerTasks({backupManager:localPlanAgent,restoreManager:localRestoreAgent}),jobProcessor.start(),{app:app}}
|
package/dist/createApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../src/createApp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../src/createApp.ts"],"names":[],"mappings":"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"}
|
package/dist/db/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{drizzle}from"drizzle-orm/better-sqlite3";import Database from"better-sqlite3";import path from"path";import{plans,plansRelations}from"./schema/plans";import{storageRelations,storages}from"./schema/storages";import{deviceRelations,devices}from"./schema/devices";import{restoreRelations,restores}from"./schema/restores";import{backupRelations,backups}from"./schema/backups";import{settings}from"./schema/settings";import{appPaths}from"../utils/AppPaths";const
|
|
1
|
+
import{drizzle}from"drizzle-orm/better-sqlite3";import Database from"better-sqlite3";import path from"path";import{plans,plansRelations}from"./schema/plans";import{storageRelations,storages}from"./schema/storages";import{deviceRelations,devices}from"./schema/devices";import{restoreRelations,restores}from"./schema/restores";import{backupRelations,backups}from"./schema/backups";import{settings}from"./schema/settings";import{appPaths}from"../utils/AppPaths";const sqlite=new Database(path.join(appPaths.getDbDir(),"pluton.db"));sqlite.pragma("journal_mode = WAL");export const db=drizzle(sqlite,{schema:{plans:plans,plansRelations:plansRelations,storages:storages,storageRelations:storageRelations,devices:devices,deviceRelations:deviceRelations,restores:restores,restoreRelations:restoreRelations,backups:backups,backupRelations:backupRelations,settings:settings}});
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{migrate}from"drizzle-orm/better-sqlite3/migrator";import{createApp}from"./createApp";import{db}from"./db";import{initSetup}from"./utils/initSetup";import{configService,ConfigService}from"./services/ConfigService";import{requiresKeyringSetup}from"./utils/installHelpers";export{createApp}from"./createApp";export{db}from"./db";export{initSetup}from"./utils/initSetup";export{configService}from"./services/ConfigService";import path from"path";import fs from"fs";const isMainModule=import.meta.url===`file://${process.argv[1]}`||process.pkg,isDevelopment="development"===process.env.NODE_ENV;(isMainModule||isDevelopment)&&(async()=>{if(requiresKeyringSetup()&&configService.isSetupPending()){await ConfigService.reinitializeWithKeyringCredentials()}if("production"===process.env.NODE_ENV)try{const migrationsFolder="true"===process.env.IS_DOCKER?"/app/drizzle":path.join(path.dirname(process.execPath),"drizzle"),journalPath=path.join(migrationsFolder,"meta","_journal.json");fs.existsSync(journalPath)&&migrate(db,{migrationsFolder:migrationsFolder})}catch(error){"SQLITE_ERROR"===error?.cause?.code&&error?.cause?.message?.includes("already exists")||process.exit(1)}configService.isSetupPending()||await initSetup(db);const{app:app}=await createApp(),server=app.listen(configService.config.SERVER_PORT||5173,()=>{configService.isSetupPending()});process.on("SIGTERM",async()=>{const forceExit=setTimeout(()=>{process.exit(1)},3e4);server.close(()=>{clearTimeout(forceExit),process.exit(0)})}),process.on("SIGINT",async()=>{server.close(()=>{process.exit(0)})})})();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
//# sourceMappingURL=PruneDatabaseTask.js.map
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
//# sourceMappingURL=UpdateDevicesTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBackupManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseBackupManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,KAAK,eAAe,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC,GAAG;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC,eAAe,GAAG,wBAAwB,CAAC,CAAC;IACtE,SAAS,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;gBAE7B,UAAU,CAAC,EAAE,MAAM;IAW/B,IAAI,WAAW,IAAI,WAAW,CAAC,eAAe,GAAG,wBAAwB,CAAC,CAEzE;IAED,IAAI,aAAa,IAAI,aAAa,CAKjC;IAEK,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAiD1C,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IAYvC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUvE,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,UAAU,EAAE,OAAO,CAAC;KACpB,GACC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhD;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAalF;;OAEG;IACG,sBAAsB,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,MAAM,CAAC;IAcZ,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAS1C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAS1E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ3E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;IAYF;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAuCzE,uBAAuB,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,MAAM,GAAE,QAAQ,GAAG,QAAmB;IAgDjC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;IA2CrE,QAAQ;CAGR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventEmitter}from"events";import{runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath}from"../utils/restic/helpers";import{runRcloneCommand}from"../utils/rclone/rclone";import{CronManager}from"./CronManager";import{BackupHandler}from"./handlers/BackupHandler";import{PruneHandler}from"./handlers/PruneHandler";import{jobQueue}from"../jobs/JobQueue";import{generateUID}from"../utils/helpers";export class BaseBackupManager extends EventEmitter{_scheduleFilePath;_cronManager;_backupHandler;constructor(configPath){super(),this._scheduleFilePath=configPath,this._cronManager=CronManager.getInstance({backup:this.queueBackup.bind(this)},this._scheduleFilePath)}get cronManager(){return this._cronManager}get backupHandler(){return this._backupHandler||(this._backupHandler=new BackupHandler(this)),this._backupHandler}async createBackup(planId,options){const{storagePath:storagePath,storage:storage}=options,{encryption:encryption}=options.settings,
|
|
1
|
+
import{EventEmitter}from"events";import{runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath}from"../utils/restic/helpers";import{runRcloneCommand}from"../utils/rclone/rclone";import{CronManager}from"./CronManager";import{BackupHandler}from"./handlers/BackupHandler";import{PruneHandler}from"./handlers/PruneHandler";import{jobQueue}from"../jobs/JobQueue";import{generateUID}from"../utils/helpers";import{configService}from"../services/ConfigService";export class BaseBackupManager extends EventEmitter{_scheduleFilePath;_cronManager;_backupHandler;constructor(configPath){super(),this._scheduleFilePath=configPath,this._cronManager=CronManager.getInstance({backup:this.queueBackup.bind(this)},this._scheduleFilePath)}get cronManager(){return this._cronManager}get backupHandler(){return this._backupHandler||(this._backupHandler=new BackupHandler(this)),this._backupHandler}async createBackup(planId,options){const{storagePath:storagePath,storage:storage}=options,{encryption:encryption}=options.settings,encKey=configService.config.ENCRYPTION_KEY;if(encryption&&(!encKey||""===encKey.trim()))return{success:!1,result:"Encryption is enabled but ENCRYPTION_KEY is not set in environment variables."};const repoPassword=encryption?encKey:"";try{const repoCommand=["-r",generateResticRepoPath(storage.name,storagePath||""),"init","--verbose"];encryption||repoCommand.push("--insecure-no-password");await runResticCommand(repoCommand,{RESTIC_PASSWORD:repoPassword,RCLONE_CONFIG_PASS:repoPassword},data=>{})}catch(error){return{success:!1,result:"Could Not Create Restic Repo. Details: "+error.message}}try{await this.createOrUpdateSchedules(planId,options,"create");const initScheduleRes=await this.performBackup(planId);return{success:!0,result:initScheduleRes.success?"Backup Schedule Created. Initial Backup Started.":"Could not Start the Initial Backup. Please run the Backup Manually."}}catch(error){return{success:!1,result:error.message}}}async updateBackup(planId,options){try{return await this.createOrUpdateSchedules(planId,options,"update"),{success:!0,result:"Backup Schedule Updated. initBackupStatus"}}catch(error){return{success:!1,result:error.message}}}async queueBackup(planId,options){if(options&&!options.isActive)return;const backupId=generateUID(),{retries:retries=5,retryDelay:retryDelay=300}=options?.settings||{};jobQueue.add("Backup",{planId:planId,backupId:backupId},retries,1e3*retryDelay)}async removeBackup(planId,options){try{await this.cronManager.removeSchedule(planId);let removeResult="Successfully Removed";if(options.storagePath&&options.removeRemoteData){removeResult+=await runRcloneCommand(["purge",`${options.storageName}:${options.storagePath}`])}return{success:!0,result:removeResult}}catch(error){return{success:!1,result:error.message}}}async performBackup(planId){const backupId=generateUID(),schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type),options=backupSchedule?.options,{retries:retries=5,retryDelay:retryDelay=60}=options?.settings||{};return backupSchedule&&backupSchedule.options?(jobQueue.addPriorityJob("Backup",{planId:planId,backupId:backupId},retries,1e3*retryDelay),{success:!0,result:"Backup job has been added to the queue."}):{success:!1,result:"No backup schedule found for this plan."}}async performBackupExecution(planId,backupId,retryInfo){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(!backupSchedule||!backupSchedule.options)throw new Error(`No backup schedule options found for plan ${planId}.`);const options=backupSchedule.options;return await this.backupHandler.execute(planId,backupId,options,retryInfo)}async cancelBackup(planId,backupId){const cancelled=await this.backupHandler.cancel(planId,backupId);return{success:cancelled,result:cancelled?"Cancelled Backup":"Failed to cancel Backup"}}async pauseBackup(planId){const paused=await this.cronManager.pauseSchedule(planId);return{success:paused,result:paused?"Paused Backup":"Failed to Pause Backup"}}async resumeBackup(planId){const resumed=await this.cronManager.resumeSchedule(planId);return{success:resumed,result:resumed?"Resumed Backup":"Failed to Resume Backup"}}async pruneBackups(planId){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(backupSchedule){const pruneHandler=new PruneHandler(this);return await pruneHandler.prune(planId,backupSchedule.options,!0)}return{success:!1,result:"Backup Task Not Found"}}async unlockRepo(planId){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type),encKey=configService.config.ENCRYPTION_KEY;if(!backupSchedule||!backupSchedule.options)return{success:!1,result:`No backup schedule configuration found for plan ${planId}.`};const options=backupSchedule.options;if(!options.storage||!options.storage.name)return{success:!1,result:"Storage configuration is missing for this plan."};try{const repoPath=generateResticRepoPath(options.storage.name,options.storagePath||""),repoPassword=options.settings.encryption?encKey:"",resticArgs=["unlock","-r",repoPath,"--json"],output=await runResticCommand(resticArgs,{RESTIC_PASSWORD:repoPassword});return{success:!0,result:output.trim()||"Successfully removed all stale locks from the repository."}}catch(error){return{success:!1,result:error.message||"An unknown error occurred during the unlock process."}}}async createOrUpdateSchedules(planId,options,action="create"){const{cronExpression:cronExpression,settings:settings,storageId:storageId,storage:storage,storagePath:storagePath,isActive:isActive,id:id,title:title,sourceConfig:sourceConfig,sourceId:sourceId}=options,backupExecOpts={id:id,title:title,isActive:isActive,cronExpression:cronExpression,sourceConfig:sourceConfig,sourceId:sourceId,storageId:storageId,storage:storage,storagePath:storagePath,settings:settings},backupOptions={...backupExecOpts,isActive:backupExecOpts.isActive||!1,taskCallback:(id,opts)=>{this.queueBackup(id,opts)}};if("create"===action)await this.cronManager.scheduleTask(planId,cronExpression,backupOptions,"backup");else{const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);backupSchedule?await this.cronManager.updateSchedule(planId,cronExpression,backupOptions,"backup"):await this.cronManager.scheduleTask(planId,cronExpression,backupOptions,"backup")}}async updatePlanStorageName(storageId,newStorageName){try{const schedules=await this.cronManager.getSchedules();if(schedules)for(const[planId,scheduleEntries]of Object.entries(schedules)){const backupSchedule=scheduleEntries.find(s=>"backup"===s.type);if(backupSchedule?.options.storageId===storageId){const updatedOptions={...backupSchedule.options,storageName:newStorageName};await this.cronManager.updateSchedule(planId,updatedOptions.cronExpression,{...updatedOptions},"backup")}}return{success:!0,result:"Relevant schedules were updated with new storage name."}}catch(error){return{success:!1,result:"Failed to updated Schedules with new storage name. "+error?.message||""}}}testFunc(){}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBackupManager.js","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseBackupManager.js","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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?
|
|
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?configService.config.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"}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSnapshotManager.js","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAC5C,eAAe,CAAkB;IAEzC;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,OAAO,gBAAgB,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,MAAc,EACd,QAAgB,EAChB,YAAoB,EACpB,OAA0E;QAE1E,IAAI,CAAC;YACJ,4BAA4B;YAC5B,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,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACpE,OAAO;oBACN,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,uBAAuB;iBAC/B,CAAC;YACH,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,mBAAmB,CAAC,MAAc,EAAE,QAAgB;QACzD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAChE,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;aACd,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;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,QAAgB;QAC5D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnE,OAAO;gBACN,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,oBAAoB;aAC5B,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;IAED,KAAK,CAAC,cAAc,CACnB,MAAc,EACd,QAAgB,EAChB,OAA0F;QAM1F,IAAI,CAAC;YACJ,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YACjE,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"BaseSnapshotManager.js","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;YAuDhC,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"}
|
|
@@ -1 +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}
|
|
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 keysPath=path.join(appPaths.getDataDir(),"keys.json");try{const existingContent=JSON.parse(await fs.readFile(keysPath,"utf-8"));if(existingContent.publicKey&&existingContent.encryptedPrivateKey)return void(this.keyData=existingContent)}catch(e){}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};try{let currentFileContent={};try{const fileStr=await fs.readFile(keysPath,"utf-8");currentFileContent=JSON.parse(fileStr)}catch(e){}const finalContent={...currentFileContent,...newKeyData};await fs.writeFile(keysPath,JSON.stringify(finalContent,null,2),{mode:384}),this.keyData=finalContent}catch(error){throw error}}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();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityKeyManager.js","sourceRoot":"","sources":["../../src/managers/SecurityKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO1D,MAAM,kBAAkB;IACf,MAAM,CAAC,QAAQ,CAAqB;IACpC,OAAO,GAAmB,IAAI,CAAC;IAC/B,mBAAmB,GAAkB,IAAI,CAAC;IAElD;QACC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAClC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC5B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE;YACrD,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;YACpD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;SAClD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE/D,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"SecurityKeyManager.js","sourceRoot":"","sources":["../../src/managers/SecurityKeyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupHandler.d.ts","sourceRoot":"","sources":["../../../src/managers/handlers/BackupHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,KAAK,gBAAgB,GAAG;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,qBAAa,aAAa;IAMb,SAAS,CAAC,OAAO,EAAE,YAAY;IAL3C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,OAAO,CAAC,eAAe,CAAkB;gBAEnB,OAAO,EAAE,YAAY;YAK7B,yBAAyB;IAQvC;;;;;;OAMG;IACG,OAAO,CACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,MAAM,CAAC;IA4GlB;;OAEG;YACW,cAAc;IAmE5B;;OAEG;cACa,kBAAkB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,gBAAgB,EAAE,gBAAgB,GAChC,OAAO,CAAC,MAAM,CAAC;IA8BlB;;OAEG;YACW,eAAe;IA6F7B;;OAEG;cACa,cAAc,CAC7B,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;IAQhB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;YACW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"BackupHandler.d.ts","sourceRoot":"","sources":["../../../src/managers/handlers/BackupHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import os from"os";import fs from"fs";import{getBackupPlanStats,runResticCommand}from"../../utils/restic/restic";import{generateResticRepoPath}from"../../utils/restic/helpers";import{processManager}from"../ProcessManager";import{PruneHandler}from"./PruneHandler";import{ProgressManager}from"../ProgressManager";import{appPaths}from"../../utils/AppPaths";import{runScriptsForEvent}from"../../utils/executeUserScript";import{configService}from"../../services/ConfigService";export class BackupHandler{emitter;runningBackups=new Set;cancelledBackups=new Set;progressManager;constructor(emitter){this.emitter=emitter,this.progressManager=new ProgressManager(appPaths.getProgressDir()),this.initializeProgressManager()}async initializeProgressManager(){try{await this.progressManager.initialize()}catch(error){}}async execute(planId,backupId,options,retryInfo){if(this.runningBackups.has(planId))throw new Error(`Backup is already in progress for plan: ${planId}`);this.runningBackups.add(planId);try{await this.progressManager.initializeProgress(planId,backupId,retryInfo)}catch(error){}retryInfo.attempts>0&&await this.updateProgress(planId,backupId,"pre-backup",`RETRY_ATTEMPT_${retryInfo.attempts}_OF_${retryInfo.maxAttempts}_START`,!1);try{const resticArgsAndEnv=this.createResticBackupArgs(planId,options);if(await this.preBackupPhase(planId,backupId,options,resticArgsAndEnv),this.cancelledBackups.has(planId))throw new Error("BACKUP_CANCELLED: Backup was cancelled");const result=await this.executeBackupPhase(planId,backupId,options,resticArgsAndEnv);if(this.cancelledBackups.has(planId))throw new Error("BACKUP_CANCELLED: Backup was cancelled");return await this.postBackupPhase(planId,backupId,options),await this.progressManager.markCompleted(planId,backupId,!0),await this.afterBackup(planId,backupId,options),result}catch(error){const errorMessage=error instanceof Error?error.message:"Unknown execution error";if(errorMessage.startsWith("BACKUP_CANCELLED:"))return"";const permanentlyFailed=retryInfo.attempts+1>retryInfo.maxAttempts;throw await this.progressManager.markCompleted(planId,backupId,!1,errorMessage,permanentlyFailed),permanentlyFailed||await this.updateProgress(planId,backupId,"retry",`BACKUP_RETRY_${retryInfo.attempts+1}_OF_${retryInfo.maxAttempts}_SCHEDULED`,!1),this.emitter.emit("backup_error",{planId:planId,backupId:backupId,error:errorMessage}),permanentlyFailed?(await this.afterBackupFailure(planId,backupId,options),await this.afterBackup(planId,backupId,options)):await this.afterBackupError(planId,backupId,options),new Error(errorMessage)}finally{this.runningBackups.delete(planId),this.cancelledBackups.delete(planId)}}async preBackupPhase(planId,backupId,options,resticArgsAndEnv){let dryRunSummary;await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_START",!1),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_DRY_RUN_START",!1);try{dryRunSummary=await this.dryRunBackup(planId,options,resticArgsAndEnv),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_DRY_RUN_COMPLETE",!0)}catch(error){const errMsg=error?.message||"Unknown Error";throw await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_DRY_RUN_ERROR",!1,errMsg),error}this.emitter.emit("backup_start",{planId:options.id,backupId:backupId,summary:dryRunSummary}),await this.waitForBackupCreation(planId,backupId),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_CHECKS_START",!1),await this.canRun(options,resticArgsAndEnv),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_CHECKS_COMPLETE",!0),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_SCRIPTS_START",!1),await this.beforeBackup(planId,backupId,options),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_SCRIPTS_COMPLETE",!0),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_UNLOCK_STALE_LOCKS",!1),await this.unlockStaleLocks(planId,options,resticArgsAndEnv),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_COMPLETE",!0)}async executeBackupPhase(planId,backupId,options,resticArgsAndEnv){await this.updateProgress(planId,backupId,"backup","BACKUP_OPERATION_START",!1);const repoPassword=options.settings.encryption?process.env.ENCRYPTION_KEY:"",handlers=this.createHandlers(planId,backupId),{resticArgs:resticArgs,resticEnv:resticEnv}=resticArgsAndEnv,resticArgsWithBackupTag=[...resticArgs,"--tag",`backup-${backupId}`];try{const result=await runResticCommand(resticArgsWithBackupTag,{RESTIC_PASSWORD:repoPassword,...resticEnv},handlers.onProgress,handlers.onError,handlers.onComplete,process=>processManager.trackProcess("backup-"+backupId,process));return this.cancelledBackups.has(planId)||await this.updateProgress(planId,backupId,"backup","BACKUP_OPERATION_COMPLETE",!0),result}catch(error){const errMsg=error?.message||"Unknown Error";throw await this.updateProgress(planId,backupId,"backup","BACKUP_OPERATION_ERROR",!0,errMsg),error}}async postBackupPhase(planId,backupId,options){await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_START",!1),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_SCRIPTS_START",!1),await this.afterBackupSuccess(planId,backupId,options),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_SCRIPTS_COMPLETE",!0),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_PRUNE_START",!1);try{const pruneHandler=new PruneHandler(this.emitter);await pruneHandler.prune(planId,options),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_PRUNE_COMPLETE",!0)}catch(error){const errorMsg=error?.message||"Unknown Error";await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_PRUNE_FAILED",!0,errorMsg)}await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_REPO_STATS_START",!1);try{const planStats=await getBackupPlanStats(planId,options.storage.name,options.storagePath,options.settings.encryption);this.emitter.emit("backup_stats_update",{planId:planId,backupId:backupId,...planStats||{}}),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_REPO_STATS_COMPLETE",!0)}catch(error){const errMsg=error?.message||"Unknown Error";this.emitter.emit("backup_stats_update",{planId:planId,backupId:backupId,error:errMsg}),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_REPO_STATS_FAILED",!0,errMsg)}await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_COMPLETE",!0)}async updateProgress(planId,backupId,phase,action,completed,error){try{await this.progressManager.updateAction(planId,backupId,phase,action,completed,error)}catch(error){}}waitForBackupCreation(planId,backupId){return new Promise((resolve,reject)=>{const timeout=setTimeout(()=>{this.emitter.removeListener("backup_created",onBackupCreated),reject(new Error(`Timeout: Did not receive backup_created confirmation for ID: ${backupId}`))},3e4),onBackupCreated=data=>{data.backupId===backupId&&data.planId===planId&&(clearTimeout(timeout),this.emitter.removeListener("backup_created",onBackupCreated),resolve())};this.emitter.on("backup_created",onBackupCreated)})}async unlockStaleLocks(planId,options,resticArgsAndEnv){if(options.storage&&options.storagePath)try{const repoPath=generateResticRepoPath(options.storage.name,options.storagePath||""),repoPassword=options.settings.encryption?process.env.ENCRYPTION_KEY:"";await runResticCommand(["unlock","-r",repoPath],{...resticArgsAndEnv.resticEnv,RESTIC_PASSWORD:repoPassword})}catch(error){}}async canRun(options,resticArgsAndEnv){if(os.freemem()<67108864*(resticArgsAndEnv?.resticEnv?.GOMAXPROCS?parseInt(resticArgsAndEnv.resticEnv.GOMAXPROCS,10):os.cpus().length))throw new Error("Insufficient memory to perform backup.");if(options.settings.encryption&&!process.env.ENCRYPTION_KEY)throw new Error("Encryption enabled but ENCRYPTION_KEY not found.");if(options.sourceConfig?.includes){const pathsNotFound=[];for(const path of options.sourceConfig.includes)try{await fs.promises.access(path,fs.constants.R_OK)}catch(error){pathsNotFound.push(path)}if(pathsNotFound.length>0)throw new Error(`Source paths not accessible: ${pathsNotFound.join(", ")}.`)}return!0}async cancel(planId,backupId){this.cancelledBackups.add(planId),await this.progressManager.markCompleted(planId,backupId,!1,"Backup was cancelled by user",!0);try{processManager.killProcess("backup-"+backupId);return!0}catch(error){return!1}}createHandlers(planId,backupId){return{onProgress:data=>{const progressLine=data.toString().trim();this.updateResticProgress(planId,backupId,progressLine);try{const progressData=JSON.parse(progressLine);this.emitter.emit("backup_progress",{planId:planId,backupId:backupId,data:progressData})}catch(error){}},onError:data=>{this.emitter.emit("backup_error",{planId:planId,backupId:backupId,error:data.toString()})},onComplete:async code=>{const progressData=await this.progressManager.getResticProgress(planId,backupId);this.emitter.emit("backup_complete",{planId:planId,backupId:backupId,success:0===code,summary:progressData})}}}async updateResticProgress(planId,backupId,resticLine){try{await this.progressManager.updateResticProgress(planId,backupId,resticLine)}catch(error){}}async dryRunBackup(planId,options,resticArgsAndEnv){const{resticArgs:resticArgs,resticEnv:resticEnv}=resticArgsAndEnv,dryRunArgs=[...resticArgs,"--dry-run"],dryRunEnv={...resticEnv,RESTIC_PASSWORD:options.settings.encryption?process.env.ENCRYPTION_KEY:""};"rescue"===options.method&&dryRunArgs.push("--one-file-system");try{const outputLines=(await runResticCommand(dryRunArgs,dryRunEnv)).split("\n"),summaryLine=outputLines[outputLines.length-1];return JSON.parse(summaryLine)}catch(error){throw new Error(`Dry run failed: ${error.message}`)}}createResticBackupArgs=(planId,options)=>{const{sourceConfig:sourceConfig,storagePath:storagePath,storage:storage}=options,{compression:compression,performance:performance,encryption:encryption}=options.settings,resticArgs=["backup"],resticEnv={};if(sourceConfig?.includes&&sourceConfig.includes.forEach(inPath=>{const pathSlice=inPath.slice(0,3);if(!inPath.startsWith("-")){const pathName="ip#"===pathSlice?inPath.replace("ip#",""):inPath;resticArgs.push(pathName)}}),sourceConfig?.excludes&&sourceConfig.excludes.forEach(exPath=>{const pathSlice=exPath.slice(0,3);if(!exPath.startsWith("-")){const xpathName="ep#"===pathSlice?exPath.replace("ep#",""):exPath;resticArgs.push("--exclude",xpathName)}}),storage.name){const repoPath=generateResticRepoPath(storage.name,storagePath||"");resticArgs.push("-r",repoPath)}return compression&&resticArgs.push("--compression","auto"),performance&&(performance.maxProcessor&&(resticEnv.GOMAXPROCS=performance.maxProcessor.toString()),performance.packSize&&resticArgs.push("--pack-size",performance.packSize),performance.scan||resticArgs.push("--no-scan"),performance.readConcurrency&&resticArgs.push("--read-concurrency",performance.readConcurrency.toString()),performance.transfers&&(resticEnv.RCLONE_TRANSFERS=performance.transfers.toString()),performance.bufferSize&&(resticEnv.RCLONE_BUFFER_SIZE=performance.bufferSize),performance.multiThreadStream&&(resticEnv.RCLONE_MULTI_THREAD_STREAMS=performance.multiThreadStream.toString())),encryption||resticArgs.push("--insecure-no-password"),resticArgs.push("--tag","plan-"+planId),resticArgs.push("--json"),{resticArgs:resticArgs,resticEnv:resticEnv}};async beforeBackup(planId,backupId,options){await this.runScripts("onBackupStart",planId,backupId,options)}async afterBackup(planId,backupId,options){await this.runScripts("onBackupEnd",planId,backupId,options)}async afterBackupSuccess(planId,backupId,options){await this.runScripts("onBackupComplete",planId,backupId,options)}async afterBackupError(planId,backupId,options){await this.runScripts("onBackupError",planId,backupId,options)}async afterBackupFailure(planId,backupId,options){await this.runScripts("onBackupFailure",planId,backupId,options)}async runScripts(eventName,planId,backupId,options){const phase=this.getPhaseFromScriptEvent(eventName),scripts=options?.settings?.scripts?.[eventName]||[],secret=configService.config.SECRET;await runScriptsForEvent(eventName,scripts,secret,async scriptName=>{await this.updateProgress(planId,backupId,phase,scriptName+"_START",!1)},async scriptName=>{await this.updateProgress(planId,backupId,phase,scriptName+"_COMPLETE",!0)},async(scriptName,message)=>{await this.updateProgress(planId,backupId,phase,scriptName+"_FAIL",!0,message)})}getPhaseFromScriptEvent(eventName){let phase="post-backup";return"onBackupStart"===eventName&&(phase="pre-backup"),phase}}
|
|
1
|
+
import os from"os";import fs from"fs";import{getBackupPlanStats,runResticCommand}from"../../utils/restic/restic";import{generateResticRepoPath}from"../../utils/restic/helpers";import{processManager}from"../ProcessManager";import{PruneHandler}from"./PruneHandler";import{ProgressManager}from"../ProgressManager";import{appPaths}from"../../utils/AppPaths";import{runScriptsForEvent}from"../../utils/executeUserScript";import{configService}from"../../services/ConfigService";export class BackupHandler{emitter;runningBackups=new Set;cancelledBackups=new Set;progressManager;constructor(emitter){this.emitter=emitter,this.progressManager=new ProgressManager(appPaths.getProgressDir()),this.initializeProgressManager()}async initializeProgressManager(){try{await this.progressManager.initialize()}catch(error){}}async execute(planId,backupId,options,retryInfo){if(this.runningBackups.has(planId))throw new Error(`Backup is already in progress for plan: ${planId}`);this.runningBackups.add(planId);try{await this.progressManager.initializeProgress(planId,backupId,retryInfo)}catch(error){}retryInfo.attempts>0&&await this.updateProgress(planId,backupId,"pre-backup",`RETRY_ATTEMPT_${retryInfo.attempts}_OF_${retryInfo.maxAttempts}_START`,!1);try{const resticArgsAndEnv=this.createResticBackupArgs(planId,options);if(await this.preBackupPhase(planId,backupId,options,resticArgsAndEnv),this.cancelledBackups.has(planId))throw new Error("BACKUP_CANCELLED: Backup was cancelled");const result=await this.executeBackupPhase(planId,backupId,options,resticArgsAndEnv);if(this.cancelledBackups.has(planId))throw new Error("BACKUP_CANCELLED: Backup was cancelled");return await this.postBackupPhase(planId,backupId,options),await this.progressManager.markCompleted(planId,backupId,!0),await this.afterBackup(planId,backupId,options),result}catch(error){const errorMessage=error instanceof Error?error.message:"Unknown execution error";if(errorMessage.startsWith("BACKUP_CANCELLED:"))return"";const permanentlyFailed=retryInfo.attempts+1>retryInfo.maxAttempts;throw await this.progressManager.markCompleted(planId,backupId,!1,errorMessage,permanentlyFailed),permanentlyFailed||await this.updateProgress(planId,backupId,"retry",`BACKUP_RETRY_${retryInfo.attempts+1}_OF_${retryInfo.maxAttempts}_SCHEDULED`,!1),this.emitter.emit("backup_error",{planId:planId,backupId:backupId,error:errorMessage}),permanentlyFailed?(await this.afterBackupFailure(planId,backupId,options),await this.afterBackup(planId,backupId,options)):await this.afterBackupError(planId,backupId,options),new Error(errorMessage)}finally{this.runningBackups.delete(planId),this.cancelledBackups.delete(planId)}}async preBackupPhase(planId,backupId,options,resticArgsAndEnv){let dryRunSummary;await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_START",!1),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_DRY_RUN_START",!1);try{dryRunSummary=await this.dryRunBackup(planId,options,resticArgsAndEnv),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_DRY_RUN_COMPLETE",!0)}catch(error){const errMsg=error?.message||"Unknown Error";throw await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_DRY_RUN_ERROR",!1,errMsg),error}this.emitter.emit("backup_start",{planId:options.id,backupId:backupId,summary:dryRunSummary}),await this.waitForBackupCreation(planId,backupId),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_CHECKS_START",!1),await this.canRun(options,resticArgsAndEnv),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_CHECKS_COMPLETE",!0),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_SCRIPTS_START",!1),await this.beforeBackup(planId,backupId,options),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_SCRIPTS_COMPLETE",!0),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_UNLOCK_STALE_LOCKS",!1),await this.unlockStaleLocks(planId,options,resticArgsAndEnv),await this.updateProgress(planId,backupId,"pre-backup","PRE_BACKUP_COMPLETE",!0)}async executeBackupPhase(planId,backupId,options,resticArgsAndEnv){await this.updateProgress(planId,backupId,"backup","BACKUP_OPERATION_START",!1);const repoPassword=options.settings.encryption?configService.config.ENCRYPTION_KEY:"",handlers=this.createHandlers(planId,backupId),{resticArgs:resticArgs,resticEnv:resticEnv}=resticArgsAndEnv,resticArgsWithBackupTag=[...resticArgs,"--tag",`backup-${backupId}`];try{const result=await runResticCommand(resticArgsWithBackupTag,{RESTIC_PASSWORD:repoPassword,...resticEnv},handlers.onProgress,handlers.onError,handlers.onComplete,process=>processManager.trackProcess("backup-"+backupId,process));return this.cancelledBackups.has(planId)||await this.updateProgress(planId,backupId,"backup","BACKUP_OPERATION_COMPLETE",!0),result}catch(error){const errMsg=error?.message||"Unknown Error";throw await this.updateProgress(planId,backupId,"backup","BACKUP_OPERATION_ERROR",!0,errMsg),error}}async postBackupPhase(planId,backupId,options){await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_START",!1),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_SCRIPTS_START",!1),await this.afterBackupSuccess(planId,backupId,options),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_SCRIPTS_COMPLETE",!0),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_PRUNE_START",!1);try{const pruneHandler=new PruneHandler(this.emitter);await pruneHandler.prune(planId,options),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_PRUNE_COMPLETE",!0)}catch(error){const errorMsg=error?.message||"Unknown Error";await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_PRUNE_FAILED",!0,errorMsg)}await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_REPO_STATS_START",!1);try{const planStats=await getBackupPlanStats(planId,options.storage.name,options.storagePath,options.settings.encryption);this.emitter.emit("backup_stats_update",{planId:planId,backupId:backupId,...planStats||{}}),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_REPO_STATS_COMPLETE",!0)}catch(error){const errMsg=error?.message||"Unknown Error";this.emitter.emit("backup_stats_update",{planId:planId,backupId:backupId,error:errMsg}),await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_REPO_STATS_FAILED",!0,errMsg)}await this.updateProgress(planId,backupId,"post-backup","POST_BACKUP_COMPLETE",!0)}async updateProgress(planId,backupId,phase,action,completed,error){try{await this.progressManager.updateAction(planId,backupId,phase,action,completed,error)}catch(error){}}waitForBackupCreation(planId,backupId){return new Promise((resolve,reject)=>{const timeout=setTimeout(()=>{this.emitter.removeListener("backup_created",onBackupCreated),reject(new Error(`Timeout: Did not receive backup_created confirmation for ID: ${backupId}`))},3e4),onBackupCreated=data=>{data.backupId===backupId&&data.planId===planId&&(clearTimeout(timeout),this.emitter.removeListener("backup_created",onBackupCreated),resolve())};this.emitter.on("backup_created",onBackupCreated)})}async unlockStaleLocks(planId,options,resticArgsAndEnv){if(options.storage&&options.storagePath)try{const repoPath=generateResticRepoPath(options.storage.name,options.storagePath||""),repoPassword=options.settings.encryption?configService.config.ENCRYPTION_KEY:"";await runResticCommand(["unlock","-r",repoPath],{...resticArgsAndEnv.resticEnv,RESTIC_PASSWORD:repoPassword})}catch(error){}}async canRun(options,resticArgsAndEnv){if(os.freemem()<67108864*(resticArgsAndEnv?.resticEnv?.GOMAXPROCS?parseInt(resticArgsAndEnv.resticEnv.GOMAXPROCS,10):os.cpus().length))throw new Error("Insufficient memory to perform backup.");if(options.settings.encryption&&!configService.config.ENCRYPTION_KEY)throw new Error("Encryption enabled but ENCRYPTION_KEY not found.");if(options.sourceConfig?.includes){const pathsNotFound=[];for(const path of options.sourceConfig.includes)try{await fs.promises.access(path,fs.constants.R_OK)}catch(error){pathsNotFound.push(path)}if(pathsNotFound.length>0)throw new Error(`Source paths not accessible: ${pathsNotFound.join(", ")}.`)}return!0}async cancel(planId,backupId){this.cancelledBackups.add(planId),await this.progressManager.markCompleted(planId,backupId,!1,"Backup was cancelled by user",!0);try{processManager.killProcess("backup-"+backupId);return!0}catch(error){return!1}}createHandlers(planId,backupId){return{onProgress:data=>{const progressLine=data.toString().trim();this.updateResticProgress(planId,backupId,progressLine);try{const progressData=JSON.parse(progressLine);this.emitter.emit("backup_progress",{planId:planId,backupId:backupId,data:progressData})}catch(error){}},onError:data=>{this.emitter.emit("backup_error",{planId:planId,backupId:backupId,error:data.toString()})},onComplete:async code=>{const progressData=await this.progressManager.getResticProgress(planId,backupId);this.emitter.emit("backup_complete",{planId:planId,backupId:backupId,success:0===code,summary:progressData})}}}async updateResticProgress(planId,backupId,resticLine){try{await this.progressManager.updateResticProgress(planId,backupId,resticLine)}catch(error){}}async dryRunBackup(planId,options,resticArgsAndEnv){const{resticArgs:resticArgs,resticEnv:resticEnv}=resticArgsAndEnv,dryRunArgs=[...resticArgs,"--dry-run"],dryRunEnv={...resticEnv,RESTIC_PASSWORD:options.settings.encryption?configService.config.ENCRYPTION_KEY:""};"rescue"===options.method&&dryRunArgs.push("--one-file-system");try{const outputLines=(await runResticCommand(dryRunArgs,dryRunEnv)).split("\n"),summaryLine=outputLines[outputLines.length-1];return JSON.parse(summaryLine)}catch(error){throw new Error(`Dry run failed: ${error.message}`)}}createResticBackupArgs=(planId,options)=>{const{sourceConfig:sourceConfig,storagePath:storagePath,storage:storage}=options,{compression:compression,performance:performance,encryption:encryption}=options.settings,resticArgs=["backup"],resticEnv={};if(sourceConfig?.includes&&sourceConfig.includes.forEach(inPath=>{const pathSlice=inPath.slice(0,3);if(!inPath.startsWith("-")){const pathName="ip#"===pathSlice?inPath.replace("ip#",""):inPath;resticArgs.push(pathName)}}),sourceConfig?.excludes&&sourceConfig.excludes.forEach(exPath=>{const pathSlice=exPath.slice(0,3);if(!exPath.startsWith("-")){const xpathName="ep#"===pathSlice?exPath.replace("ep#",""):exPath;resticArgs.push("--exclude",xpathName)}}),storage.name){const repoPath=generateResticRepoPath(storage.name,storagePath||"");resticArgs.push("-r",repoPath)}return compression&&resticArgs.push("--compression","auto"),performance&&(performance.maxProcessor&&(resticEnv.GOMAXPROCS=performance.maxProcessor.toString()),performance.packSize&&resticArgs.push("--pack-size",performance.packSize),performance.scan||resticArgs.push("--no-scan"),performance.readConcurrency&&resticArgs.push("--read-concurrency",performance.readConcurrency.toString()),performance.transfers&&(resticEnv.RCLONE_TRANSFERS=performance.transfers.toString()),performance.bufferSize&&(resticEnv.RCLONE_BUFFER_SIZE=performance.bufferSize),performance.multiThreadStream&&(resticEnv.RCLONE_MULTI_THREAD_STREAMS=performance.multiThreadStream.toString())),encryption||resticArgs.push("--insecure-no-password"),resticArgs.push("--tag","plan-"+planId),resticArgs.push("--json"),{resticArgs:resticArgs,resticEnv:resticEnv}};async beforeBackup(planId,backupId,options){await this.runScripts("onBackupStart",planId,backupId,options)}async afterBackup(planId,backupId,options){await this.runScripts("onBackupEnd",planId,backupId,options)}async afterBackupSuccess(planId,backupId,options){await this.runScripts("onBackupComplete",planId,backupId,options)}async afterBackupError(planId,backupId,options){await this.runScripts("onBackupError",planId,backupId,options)}async afterBackupFailure(planId,backupId,options){await this.runScripts("onBackupFailure",planId,backupId,options)}async runScripts(eventName,planId,backupId,options){const phase=this.getPhaseFromScriptEvent(eventName),scripts=options?.settings?.scripts?.[eventName]||[],secret=configService.config.SECRET;await runScriptsForEvent(eventName,scripts,secret,async scriptName=>{await this.updateProgress(planId,backupId,phase,scriptName+"_START",!1)},async scriptName=>{await this.updateProgress(planId,backupId,phase,scriptName+"_COMPLETE",!0)},async(scriptName,message)=>{await this.updateProgress(planId,backupId,phase,scriptName+"_FAIL",!0,message)})}getPhaseFromScriptEvent(eventName){let phase="post-backup";return"onBackupStart"===eventName&&(phase="pre-backup"),phase}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupHandler.js","sourceRoot":"","sources":["../../../src/managers/handlers/BackupHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BackupHandler.js","sourceRoot":"","sources":["../../../src/managers/handlers/BackupHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadHandler.d.ts","sourceRoot":"","sources":["../../../src/managers/handlers/DownloadHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"DownloadHandler.d.ts","sourceRoot":"","sources":["../../../src/managers/handlers/DownloadHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAYtC,qBAAa,eAAe;IACf,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAEnC,QAAQ,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;IA+DZ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAqBvC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAa1C,OAAO,CAAC,cAAc;CA0BtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{mkdir,rm}from"fs/promises";import path from"path";import{existsSync,createReadStream}from"fs";import{unlink}from"fs/promises";import{runResticCommand}from"../../utils/restic/restic";import{generateResticRepoPath}from"../../utils/restic/helpers";import{processManager}from"../ProcessManager";import{runCommand}from"../../utils/runCommand";import{appPaths}from"../../utils/AppPaths";export class DownloadHandler{emitter;constructor(emitter){this.emitter=emitter}async download(planId,backupId,snapshotId,options){const tempDir=appPaths.getDownloadsDir(),fileName=`backup-${backupId}.tar`,zipPath=path.join(tempDir,fileName),restoreDir=path.join(tempDir,`backup-${backupId}`),tarPath=path.join(tempDir,fileName);return this.emitter.emit("download_start",{planId:planId,backupId:backupId,targetPath:zipPath}),await mkdir(path.dirname(tempDir),{recursive:!0}),new Promise((resolve,reject)=>{const handlers=this.createHandlers(planId,backupId),{storageName:storageName,storagePath:storagePath,encryption:encryption}=options,repoPassword=encryption?
|
|
1
|
+
import{mkdir,rm}from"fs/promises";import path from"path";import{existsSync,createReadStream}from"fs";import{unlink}from"fs/promises";import{runResticCommand}from"../../utils/restic/restic";import{generateResticRepoPath}from"../../utils/restic/helpers";import{processManager}from"../ProcessManager";import{runCommand}from"../../utils/runCommand";import{appPaths}from"../../utils/AppPaths";import{configService}from"../../services/ConfigService";export class DownloadHandler{emitter;constructor(emitter){this.emitter=emitter}async download(planId,backupId,snapshotId,options){const tempDir=appPaths.getDownloadsDir(),fileName=`backup-${backupId}.tar`,zipPath=path.join(tempDir,fileName),restoreDir=path.join(tempDir,`backup-${backupId}`),tarPath=path.join(tempDir,fileName);return this.emitter.emit("download_start",{planId:planId,backupId:backupId,targetPath:zipPath}),await mkdir(path.dirname(tempDir),{recursive:!0}),new Promise((resolve,reject)=>{const handlers=this.createHandlers(planId,backupId),{storageName:storageName,storagePath:storagePath,encryption:encryption}=options,repoPassword=encryption?configService.config.ENCRYPTION_KEY:"",repoPath=generateResticRepoPath(storageName,storagePath||"");runResticCommand(["restore","-r",repoPath,snapshotId,"--target",restoreDir,"--json"],{RESTIC_PASSWORD:repoPassword,RCLONE_CONFIG_PASS:repoPassword},handlers.onProgress,handlers.onError,async code=>{if(0===code)try{const tarCommand=["tar","-cf",tarPath,"-C",restoreDir,"."];try{await runCommand(tarCommand);try{await rm(restoreDir,{recursive:!0,force:!0})}catch(error){}handlers.onComplete(0),resolve(tarPath)}catch(error){handlers.onError(Buffer.from(error.message))}}catch(error){handlers.onError(Buffer.from(error.message)),reject(error)}else handlers.onComplete(code),reject(new Error("Restore failed"))},process=>processManager.trackProcess("download-"+backupId,process)).then(resolve).catch(reject)})}async cancel(planId,backupId){try{if(processManager.killProcess("download-"+backupId)){const tempDir=appPaths.getDownloadsDir(),fileName=`backup-${backupId}.tar`,zipPath=path.join(tempDir,fileName);await new Promise(resolve=>setTimeout(resolve,2e3)),existsSync(zipPath)&&await unlink(zipPath)}return!0}catch(error){throw new Error("Error Cancelling Download. "+error?.message||"")}}async get(planId,backupId){try{const tempDir=appPaths.getDownloadsDir(),fileName=`backup-${backupId}.tar`,zipPath=path.join(tempDir,fileName);return{fileName:fileName,fileStream:createReadStream(zipPath)}}catch(error){throw new Error("Error Getting Downloaded File. "+error?.message||"")}}createHandlers(planId,backupId){return{onProgress:data=>{const progressData=JSON.parse(data.toString());this.emitter.emit("download_progress",{backupId:backupId,planId:planId,data:progressData})},onError:data=>{this.emitter.emit("download_error",{backupId:backupId,planId:planId,error:data.toString()})},onComplete:code=>{this.emitter.emit("download_complete",{backupId:backupId,planId:planId,success:0===code})}}}}
|