@plutonhq/core-backend 0.1.0 → 0.1.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.
Files changed (72) hide show
  1. package/dist/controllers/PlanController.d.ts +1 -1
  2. package/dist/controllers/PlanController.d.ts.map +1 -1
  3. package/dist/controllers/PlanController.js +1 -1
  4. package/dist/controllers/PlanController.js.map +1 -1
  5. package/dist/createApp.js +1 -1
  6. package/dist/createApp.js.map +1 -1
  7. package/dist/jobs/tasks/CleanDownloadsTask.d.ts.map +1 -1
  8. package/dist/jobs/tasks/CleanDownloadsTask.js +1 -1
  9. package/dist/jobs/tasks/CleanDownloadsTask.js.map +1 -1
  10. package/dist/managers/BaseSnapshotManager.d.ts.map +1 -1
  11. package/dist/managers/BaseSnapshotManager.js +1 -1
  12. package/dist/managers/BaseSnapshotManager.js.map +1 -1
  13. package/dist/notifications/BackupNotification.d.ts +2 -0
  14. package/dist/notifications/BackupNotification.d.ts.map +1 -1
  15. package/dist/notifications/BackupNotification.js +1 -1
  16. package/dist/notifications/BackupNotification.js.map +1 -1
  17. package/dist/notifications/BaseNotification.d.ts.map +1 -1
  18. package/dist/notifications/BaseNotification.js +1 -1
  19. package/dist/notifications/BaseNotification.js.map +1 -1
  20. package/dist/notifications/channels/NotificationChannelResolver.d.ts +2 -2
  21. package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -1
  22. package/dist/notifications/channels/NotificationChannelResolver.js +1 -1
  23. package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -1
  24. package/dist/notifications/channels/SMTPChannel.js.map +1 -1
  25. package/dist/notifications/templateLoader.d.ts +15 -0
  26. package/dist/notifications/templateLoader.d.ts.map +1 -0
  27. package/dist/notifications/templateLoader.js +1 -0
  28. package/dist/notifications/templateLoader.js.map +1 -0
  29. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -1
  30. package/dist/notifications/templates/email/backup/BackupFailedNotification.ejs +109 -0
  31. package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -1
  32. package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -1
  33. package/dist/notifications/templates/email/backup/BackupFailedNotification.ts +110 -0
  34. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -1
  35. package/dist/notifications/templates/email/backup/BackupStartedNotification.ejs +159 -0
  36. package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -1
  37. package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -1
  38. package/dist/notifications/templates/email/backup/BackupStartedNotification.ts +87 -0
  39. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -1
  40. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ejs +163 -0
  41. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -1
  42. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -1
  43. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ts +97 -0
  44. package/dist/notifications/templates/email/email.html +801 -0
  45. package/dist/notifications/templates/email/test-email/TestEmailNotification.ts +27 -0
  46. package/dist/routes/plans.js +1 -1
  47. package/dist/routes/plans.js.map +1 -1
  48. package/dist/services/BackupServices.d.ts +1 -1
  49. package/dist/services/BackupServices.d.ts.map +1 -1
  50. package/dist/services/PlanService.d.ts +1 -1
  51. package/dist/services/PlanService.d.ts.map +1 -1
  52. package/dist/services/PlanService.js +1 -1
  53. package/dist/services/PlanService.js.map +1 -1
  54. package/dist/services/SettingsService.d.ts +2 -0
  55. package/dist/services/SettingsService.d.ts.map +1 -1
  56. package/dist/services/SettingsService.js +1 -1
  57. package/dist/services/SettingsService.js.map +1 -1
  58. package/dist/stores/PlanStore.d.ts +1 -0
  59. package/dist/stores/PlanStore.d.ts.map +1 -1
  60. package/dist/stores/PlanStore.js +1 -1
  61. package/dist/stores/PlanStore.js.map +1 -1
  62. package/dist/stores/SettingsStore.d.ts +3 -1
  63. package/dist/stores/SettingsStore.d.ts.map +1 -1
  64. package/dist/stores/SettingsStore.js +1 -1
  65. package/dist/stores/SettingsStore.js.map +1 -1
  66. package/dist/types/notifications.d.ts +11 -0
  67. package/dist/types/notifications.d.ts.map +1 -1
  68. package/dist/utils/AppPaths.d.ts +1 -0
  69. package/dist/utils/AppPaths.d.ts.map +1 -1
  70. package/dist/utils/AppPaths.js +1 -1
  71. package/dist/utils/AppPaths.js.map +1 -1
  72. package/package.json +4 -3
@@ -5,7 +5,7 @@ export declare class PlanController {
5
5
  constructor(planService: PlanService);
6
6
  getPlans(req: Request, res: Response): Promise<void>;
7
7
  getPlan(req: Request, res: Response): Promise<void>;
8
- checkActiveBackups(req: Request, res: Response): Promise<void>;
8
+ checkActiveBackupsOrRestore(req: Request, res: Response): Promise<void>;
9
9
  createPlan(req: Request, res: Response): Promise<void>;
10
10
  updatePlan(req: Request, res: Response): Promise<void>;
11
11
  deletePlan(req: Request, res: Response): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"PlanController.d.ts","sourceRoot":"","sources":["../../src/controllers/PlanController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,qBAAa,cAAc;IACd,SAAS,CAAC,WAAW,EAAE,WAAW;gBAAxB,WAAW,EAAE,WAAW;IAExC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9D,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtD,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtD,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB9D"}
1
+ {"version":3,"file":"PlanController.d.ts","sourceRoot":"","sources":["../../src/controllers/PlanController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,qBAAa,cAAc;IACd,SAAS,CAAC,WAAW,EAAE,WAAW;gBAAxB,WAAW,EAAE,WAAW;IAExC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvE,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtD,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxD,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtD,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB9D"}
@@ -1 +1 @@
1
- export class PlanController{planService;constructor(planService){this.planService=planService}async getPlans(req,res){try{const allPlans=await this.planService.getAllPlans();res.status(200).json({success:!0,result:allPlans||[]})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:"Internal Server Error. Details: "+(appError?.message||"Unknown Error")})}}async getPlan(req,res){if(req.params.id)try{const thePlan=await this.planService.getPlan(req.params.id,!0);res.status(200).json({success:!0,result:thePlan})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Internal Server Error"})}else res.status(400).json({success:!1,error:"Plan ID is required"})}async checkActiveBackups(req,res){if(req.params.id)try{const hasActiveBackup=await this.planService.checkActiveBackups(req.params.id);res.status(200).json({success:!0,result:hasActiveBackup})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:"Internal Server Error. Details: "+(appError?.message||"Unknown Error")})}else res.status(400).json({success:!1,error:"Plan ID is required"})}async createPlan(req,res){const planPayload=req.body;try{if(!(planPayload&&planPayload.settings&&planPayload.settings.interval&&planPayload.storage.id&&planPayload.sourceType&&planPayload.sourceConfig))return void res.status(400).json({success:!1,error:"Required fields missing: interval, storage Id, sourceId, sourceType, sourceConfig"});const plan=await this.planService.createPlan(planPayload);res.status(201).json({success:!0,result:plan})}catch(error){const appError=error;return void res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to create plan"})}}async updatePlan(req,res){const planPayload=req.body.plan;try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required."});if(!planPayload)return void res.status(400).json({success:!1,error:"Payload Missing."});const updatedPlan=await this.planService.updatePlan(req.params.id,planPayload);res.status(200).json({success:!0,result:updatedPlan})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to update plan"})}}async deletePlan(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const removeRemoteData=!!req.query.removeData;await this.planService.deletePlan(req.params.id,removeRemoteData),res.status(200).json({success:!0,message:"Plan deleted successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to delete plan"})}}async performBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});await this.planService.performBackup(req.params.id),res.status(200).json({success:!0,message:"Backup initiated successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to initiate backup"})}}async pauseBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});await this.planService.pauseBackup(req.params.id),res.status(200).json({success:!0,message:"Backup paused successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to pause backup"})}}async resumeBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});await this.planService.resumeBackup(req.params.id),res.status(200).json({success:!0,message:"Backup resumed successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to pause backup"})}}async pruneBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const pruneResult=await this.planService.pruneBackups(req.params.id);res.status(200).json({success:!0,message:pruneResult||"Backup pruned successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to prune backups"})}}async unlockRepo(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const result=await this.planService.unlockRepo(req.params.id);res.status(result.success?200:500).json(result)}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to unlock repository"})}}async getLogs(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const logs=await this.planService.getPlanLogs(req.params.id);res.status(200).json({success:!0,logs:logs})}catch(error){const appError=error;return void res.status(appError.statusCode||500).json({success:!1,error:"Failed to get logs: "+appError.message})}}async downloadLogs(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const fileStream=await this.planService.downloadPlanLogs(req.params.id);res.setHeader("Content-Type","text/plain"),res.setHeader("Content-Disposition",'attachment; filename="plan.log"'),fileStream.pipe(res)}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:`Failed to download logs: ${appError.message}`})}}}
1
+ export class PlanController{planService;constructor(planService){this.planService=planService}async getPlans(req,res){try{const allPlans=await this.planService.getAllPlans();res.status(200).json({success:!0,result:allPlans||[]})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:"Internal Server Error. Details: "+(appError?.message||"Unknown Error")})}}async getPlan(req,res){if(req.params.id)try{const thePlan=await this.planService.getPlan(req.params.id,!0);res.status(200).json({success:!0,result:thePlan})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Internal Server Error"})}else res.status(400).json({success:!1,error:"Plan ID is required"})}async checkActiveBackupsOrRestore(req,res){if(req.params.id)try{const type="restore"===req.query.type?"restore":"backup",hasActiveBackup=await this.planService.checkActiveBackupsOrRestore(req.params.id,type);res.status(200).json({success:!0,result:hasActiveBackup})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:"Internal Server Error. Details: "+(appError?.message||"Unknown Error")})}else res.status(400).json({success:!1,error:"Plan ID is required"})}async createPlan(req,res){const planPayload=req.body;try{if(!(planPayload&&planPayload.settings&&planPayload.settings.interval&&planPayload.storage.id&&planPayload.sourceType&&planPayload.sourceConfig))return void res.status(400).json({success:!1,error:"Required fields missing: interval, storage Id, sourceId, sourceType, sourceConfig"});const plan=await this.planService.createPlan(planPayload);res.status(201).json({success:!0,result:plan})}catch(error){const appError=error;return void res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to create plan"})}}async updatePlan(req,res){const planPayload=req.body.plan;try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required."});if(!planPayload)return void res.status(400).json({success:!1,error:"Payload Missing."});const updatedPlan=await this.planService.updatePlan(req.params.id,planPayload);res.status(200).json({success:!0,result:updatedPlan})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to update plan"})}}async deletePlan(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const removeRemoteData=!!req.query.removeData;await this.planService.deletePlan(req.params.id,removeRemoteData),res.status(200).json({success:!0,message:"Plan deleted successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to delete plan"})}}async performBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});await this.planService.performBackup(req.params.id),res.status(200).json({success:!0,message:"Backup initiated successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError?.message||"Failed to initiate backup"})}}async pauseBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});await this.planService.pauseBackup(req.params.id),res.status(200).json({success:!0,message:"Backup paused successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to pause backup"})}}async resumeBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});await this.planService.resumeBackup(req.params.id),res.status(200).json({success:!0,message:"Backup resumed successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to pause backup"})}}async pruneBackup(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const pruneResult=await this.planService.pruneBackups(req.params.id);res.status(200).json({success:!0,message:pruneResult||"Backup pruned successfully"})}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to prune backups"})}}async unlockRepo(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const result=await this.planService.unlockRepo(req.params.id);res.status(result.success?200:500).json(result)}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:appError.message||"Failed to unlock repository"})}}async getLogs(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const logs=await this.planService.getPlanLogs(req.params.id);res.status(200).json({success:!0,logs:logs})}catch(error){const appError=error;return void res.status(appError.statusCode||500).json({success:!1,error:"Failed to get logs: "+appError.message})}}async downloadLogs(req,res){try{if(!req.params.id)return void res.status(400).json({success:!1,error:"Plan ID is required"});const fileStream=await this.planService.downloadPlanLogs(req.params.id);res.setHeader("Content-Type","text/plain"),res.setHeader("Content-Disposition",'attachment; filename="plan.log"'),fileStream.pipe(res)}catch(error){const appError=error;res.status(appError.statusCode||500).json({success:!1,error:`Failed to download logs: ${appError.message}`})}}}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanController.js","sourceRoot":"","sources":["../../src/controllers/PlanController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanController.js","sourceRoot":"","sources":["../../src/controllers/PlanController.ts"],"names":[],"mappings":"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"}
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{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}}
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:1e3,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}}
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CleanDownloadsTask.d.ts","sourceRoot":"","sources":["../../../src/jobs/tasks/CleanDownloadsTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,qBAAa,kBAAmB,SAAQ,IAAI;IAC3C,IAAI,SAAoB;IAElB,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BlC"}
1
+ {"version":3,"file":"CleanDownloadsTask.d.ts","sourceRoot":"","sources":["../../../src/jobs/tasks/CleanDownloadsTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,qBAAa,kBAAmB,SAAQ,IAAI;IAC3C,IAAI,SAAoB;IAElB,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BlC"}
@@ -1 +1 @@
1
- import{Task}from"./AbstractTask";import{cronLogger}from"../../utils/logger";import path from"path";import{readdir,stat,rm}from"fs/promises";import{appPaths}from"../../utils/AppPaths";export class CleanDownloadsTask extends Task{name="CleanDownloads";async run(job){const now=Date.now(),dirsToClean=[appPaths.getDownloadsDir(),appPaths.getRestoresDir(),appPaths.getProgressDir()];for(const dir of dirsToClean)try{const files=await readdir(dir);for(const file of files){const filePath=path.join(dir,file);now-(await stat(filePath)).mtime.getTime()>3456e5&&await rm(filePath,{recursive:!0,force:!0})}}catch(error){"ENOENT"!==error.code&&cronLogger.error(`Error cleaning directory: ${dir}`)}}}
1
+ import{Task}from"./AbstractTask";import{cronLogger}from"../../utils/logger";import path from"path";import{readdir,stat,rm}from"fs/promises";import{appPaths}from"../../utils/AppPaths";export class CleanDownloadsTask extends Task{name="CleanDownloads";async run(job){const now=Date.now(),dirsToClean=[appPaths.getDownloadsDir(),appPaths.getRestoresDir(),appPaths.getProgressDir(),appPaths.getCacheDir()];for(const dir of dirsToClean)try{const files=await readdir(dir);for(const file of files){const filePath=path.join(dir,file);now-(await stat(filePath)).mtime.getTime()>3456e5&&await rm(filePath,{recursive:!0,force:!0})}}catch(error){"ENOENT"!==error.code&&cronLogger.error(`Error cleaning directory: ${dir}`)}}}
@@ -1 +1 @@
1
- {"version":3,"file":"CleanDownloadsTask.js","sourceRoot":"","sources":["../../../src/jobs/tasks/CleanDownloadsTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,OAAO,kBAAmB,SAAQ,IAAI;IAC3C,IAAI,GAAG,gBAAgB,CAAC;IAExB,KAAK,CAAC,GAAG,CAAC,GAAQ;QACjB,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG;YACnB,QAAQ,CAAC,eAAe,EAAE;YAC1B,QAAQ,CAAC,cAAc,EAAE;YACzB,QAAQ,CAAC,cAAc,EAAE;SACzB,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAEtC,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;wBACrD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,UAAU,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;gBACtD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"CleanDownloadsTask.js","sourceRoot":"","sources":["../../../src/jobs/tasks/CleanDownloadsTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,OAAO,kBAAmB,SAAQ,IAAI;IAC3C,IAAI,GAAG,gBAAgB,CAAC;IAExB,KAAK,CAAC,GAAG,CAAC,GAAQ;QACjB,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG;YACnB,QAAQ,CAAC,eAAe,EAAE;YAC1B,QAAQ,CAAC,cAAc,EAAE;YACzB,QAAQ,CAAC,cAAc,EAAE;YACzB,QAAQ,CAAC,WAAW,EAAE;SACtB,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAEtC,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;wBACrD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,UAAU,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;gBACtD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
@@ -1 +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"}
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;AAI/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;CA4DjE"}
@@ -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?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
+ 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";import{appPaths}from"../utils/AppPaths";import{readFile,writeFile}from"fs/promises";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){const filename=`backup-${backupId}-snapshot.json`,snapshotFilePath=`${appPaths.getCacheDir()}/${filename}`;try{const snapshotCache=await readFile(snapshotFilePath,"utf8");return{success:!0,result:JSON.parse(snapshotCache)}}catch(error){}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||""),output=await runResticCommand(["ls","-r",repoPath,snapshotId,"--json","--long"],{RESTIC_PASSWORD:repoPassword}),files=output.split(/\r?\n/).filter(line=>""!==line.trim()).map(item=>JSON.parse(item)).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}));return await writeFile(snapshotFilePath,JSON.stringify(files),"utf8"),{success:!0,result:files}}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":"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"}
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;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,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,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;YACxE,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,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,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvF,eAAe,EAAE,YAAY;aAC7B,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACzF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,SAAS;aAChB,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,gBAAgB,CACrB,QAAgB,EAChB,OAA0E;QAE1E,MAAM,QAAQ,GAAG,UAAU,QAAQ,gBAAgB,CAAC;QACpD,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;QAEjE,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC,CAAA,CAAC;QAEvB,IAAI,CAAC;YACJ,IAAI,UAA8B,CAAC;YACnC,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,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YACzD,CAAC;YACD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YACzD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACpC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACtD;gBACC,eAAe,EAAE,YAAY;aAC7B,CACD,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM;iBACvB,KAAK,CAAC,OAAO,CAAC;iBACd,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;iBAClC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,yCAAyC;YACzC,MAAM,KAAK,GAAmB,UAAU;iBACtC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;iBACvC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EACN,OAAO,CAAC,QAAQ,KAAK,OAAO;oBAC3B,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;gBAChC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACpB,UAAU,EAAE,IAAI,CAAC,KAAK;gBACtB,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI;aACjB,CAAC,CAAC,CAAC;YAEL,kBAAkB;YAClB,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;YAEjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,8BAA8B,EAAE,CAAC;QACrF,CAAC;IACF,CAAC;CACD"}
@@ -1,5 +1,6 @@
1
1
  import { BackupCompletionStats, BackupTaskStats } from '../types/backups';
2
2
  import { PlanFull } from '../types/plans';
3
+ import { INotificationChannelResolver } from '../types/notifications';
3
4
  import { BackupStartedNotification } from './templates/email/backup/BackupStartedNotification';
4
5
  import { BackupSuccessNotification } from './templates/email/backup/BackupSuccessNotification';
5
6
  import { BackupFailedNotification } from './templates/email/backup/BackupFailedNotification';
@@ -15,6 +16,7 @@ export declare class BackupNotification {
15
16
  protected BackupStartedNotificationClass: typeof BackupStartedNotification;
16
17
  protected BackupSuccessNotificationClass: typeof BackupSuccessNotification;
17
18
  protected BackupFailedNotificationClass: typeof BackupFailedNotification;
19
+ protected notificationChannelResolver: INotificationChannelResolver;
18
20
  shouldSend(notificationCase: string, notificationType: string): boolean;
19
21
  send(plan: PlanFull, notificationType: NotificationType, backupData?: BackupDataType): Promise<void>;
20
22
  sendEmail(plan: PlanFull, notificationType: NotificationType, backupData?: BackupDataType, notificationCase?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"BackupNotification.d.ts","sourceRoot":"","sources":["../../src/notifications/BackupNotification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAK7F,UAAU,cAAc;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC;CAChD;AAED,KAAK,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhE,qBAAa,kBAAkB;IAC9B,SAAS,CAAC,8BAA8B,mCAA6B;IACrE,SAAS,CAAC,8BAA8B,mCAA6B;IACrE,SAAS,CAAC,6BAA6B,kCAA4B;IAEnE,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;IAQvD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,cAAc;IAQpF,SAAS,CACd,IAAI,EAAE,QAAQ,EACd,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,gBAAgB,CAAC,EAAE,MAAM;IAmCpB,oBAAoB,CACzB,IAAI,EAAE,QAAQ,EACd,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,MAAe;CAgF1C"}
1
+ {"version":3,"file":"BackupNotification.d.ts","sourceRoot":"","sources":["../../src/notifications/BackupNotification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAK7F,UAAU,cAAc;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC;CAChD;AAED,KAAK,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhE,qBAAa,kBAAkB;IAC9B,SAAS,CAAC,8BAA8B,mCAA6B;IACrE,SAAS,CAAC,8BAA8B,mCAA6B;IACrE,SAAS,CAAC,6BAA6B,kCAA4B;IACnE,SAAS,CAAC,2BAA2B,EAAE,4BAA4B,CAA+B;IAElG,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;IAQvD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,cAAc;IAQpF,SAAS,CACd,IAAI,EAAE,QAAQ,EACd,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,gBAAgB,CAAC,EAAE,MAAM;IAmCpB,oBAAoB,CACzB,IAAI,EAAE,QAAQ,EACd,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,cAAc,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,MAAe;CAgF1C"}
@@ -1 +1 @@
1
- import{BackupStartedNotification}from"./templates/email/backup/BackupStartedNotification";import{BackupSuccessNotification}from"./templates/email/backup/BackupSuccessNotification";import{BackupFailedNotification}from"./templates/email/backup/BackupFailedNotification";import{planLogger}from"../utils/logger";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";import{configService}from"../services/ConfigService";export class BackupNotification{BackupStartedNotificationClass=BackupStartedNotification;BackupSuccessNotificationClass=BackupSuccessNotification;BackupFailedNotificationClass=BackupFailedNotification;shouldSend(notificationCase,notificationType){return"both"===notificationCase||notificationCase===notificationType||"end"===notificationCase&&["success","failure"].includes(notificationType)}async send(plan,notificationType,backupData){const notification=plan.settings.notification;notification?.email?.enabled&&await this.sendEmail(plan,notificationType,backupData)}async sendEmail(plan,notificationType,backupData,notificationCase){try{const notification=plan.settings.notification;if(!this.shouldSend(notification?.email?.case||"end",notificationType))throw new Error("Does not match Plan Notification Case.");const emailType=notification?.email?.type||"smtp";if(!notification?.email?.emails)throw new Error("Email Notification Emails Missing.");const emailChannel=await NotificationChannelResolver.getChannel(emailType),notificationClass=await this.getNotificationClass(plan,notificationType,backupData,"html"),notificationResult=await emailChannel.send(notificationClass,{emails:notification.email.emails});if(!notificationResult?.success)throw new Error(notificationResult?.result||"Unknown Error");planLogger("notification",plan.id,backupData?.id).info(`Backup ${notificationType} Notification Email Sent Successfully.`)}catch(error){const errorMessage=error instanceof Error?error.message:"Unknown Error.";planLogger("notification",plan.id,backupData?.id).error(`Error Sending Backup ${notificationType} Email Notification. Reason: ${errorMessage}`)}}async getNotificationClass(plan,notificationType,backupData,output="html"){let notificationClass,deviceName=plan.device?.name||"",storageName=plan.storage?.name||"",storageType=plan.storage?.type||"";switch(notificationType){case"start":notificationClass=new this.BackupStartedNotificationClass({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,startTime:backupData?.startTime||new Date,stats:backupData?.stats,output:output});break;case"success":notificationClass=new this.BackupSuccessNotificationClass({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output});break;case"failure":notificationClass=new this.BackupFailedNotificationClass({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,error:backupData?.error||"",startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output});break;case"end":notificationClass=backupData?.error?new BackupFailedNotification({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,error:backupData?.error||"",startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output}):new BackupSuccessNotification({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output})}return notificationClass}}
1
+ import{BackupStartedNotification}from"./templates/email/backup/BackupStartedNotification";import{BackupSuccessNotification}from"./templates/email/backup/BackupSuccessNotification";import{BackupFailedNotification}from"./templates/email/backup/BackupFailedNotification";import{planLogger}from"../utils/logger";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";import{configService}from"../services/ConfigService";export class BackupNotification{BackupStartedNotificationClass=BackupStartedNotification;BackupSuccessNotificationClass=BackupSuccessNotification;BackupFailedNotificationClass=BackupFailedNotification;notificationChannelResolver=NotificationChannelResolver;shouldSend(notificationCase,notificationType){return"both"===notificationCase||notificationCase===notificationType||"end"===notificationCase&&["success","failure"].includes(notificationType)}async send(plan,notificationType,backupData){const notification=plan.settings.notification;notification?.email?.enabled&&await this.sendEmail(plan,notificationType,backupData)}async sendEmail(plan,notificationType,backupData,notificationCase){try{const notification=plan.settings.notification;if(!this.shouldSend(notification?.email?.case||"end",notificationType))throw new Error("Does not match Plan Notification Case.");const emailType=notification?.email?.type||"smtp";if(!notification?.email?.emails)throw new Error("Email Notification Emails Missing.");const emailChannel=await this.notificationChannelResolver.getChannel(emailType),notificationClass=await this.getNotificationClass(plan,notificationType,backupData,"html"),notificationResult=await emailChannel.send(notificationClass,{emails:notification.email.emails});if(!notificationResult?.success)throw new Error(notificationResult?.result||"Unknown Error");planLogger("notification",plan.id,backupData?.id).info(`Backup ${notificationType} Notification Email Sent Successfully.`)}catch(error){const errorMessage=error instanceof Error?error.message:"Unknown Error.";planLogger("notification",plan.id,backupData?.id).error(`Error Sending Backup ${notificationType} Email Notification. Reason: ${errorMessage}`)}}async getNotificationClass(plan,notificationType,backupData,output="html"){let notificationClass,deviceName=plan.device?.name||"",storageName=plan.storage?.name||"",storageType=plan.storage?.type||"";switch(notificationType){case"start":notificationClass=new this.BackupStartedNotificationClass({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,startTime:backupData?.startTime||new Date,stats:backupData?.stats,output:output});break;case"success":notificationClass=new this.BackupSuccessNotificationClass({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output});break;case"failure":notificationClass=new this.BackupFailedNotificationClass({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,error:backupData?.error||"",startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output});break;case"end":notificationClass=backupData?.error?new BackupFailedNotification({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,error:backupData?.error||"",startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output}):new BackupSuccessNotification({appTitle:configService.config.APP_TITLE||"Pluton",plan:plan,deviceName:deviceName,storageName:storageName,storageType:storageType,startTime:backupData?.startTime||new Date,endTime:backupData?.endTime||new Date,stats:backupData?.stats,output:output})}return notificationClass}}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupNotification.js","sourceRoot":"","sources":["../../src/notifications/BackupNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackupNotification.js","sourceRoot":"","sources":["../../src/notifications/BackupNotification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNotification.d.ts","sourceRoot":"","sources":["../../src/notifications/BaseNotification.ts"],"names":[],"mappings":"AAMA,8BAAsB,gBAAgB;IACrC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAM;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAU;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAM;IAC/B,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC;IAC1B,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAU;;IAM3E,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,IAAI;IAIpB,OAAO,IAAI,MAAM;IAIjB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAwBrC,SAAS,CAAC,kBAAkB,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GACC,MAAM;IAoBT,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;CAIzD"}
1
+ {"version":3,"file":"BaseNotification.d.ts","sourceRoot":"","sources":["../../src/notifications/BaseNotification.ts"],"names":[],"mappings":"AAGA,8BAAsB,gBAAgB;IACrC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAM;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAU;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAM;IAC/B,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC;IAC1B,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAU;;IAM3E,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,IAAI;IAIpB,OAAO,IAAI,MAAM;IAIjB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GACC,MAAM;IAoBT,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;CAIzD"}
@@ -1 +1 @@
1
- import{readFileSync}from"fs";import path from"path";import{configService}from"../services/ConfigService";export class BaseNotification{subject="";contentType="html";content="";timestamp;type="test";constructor(){this.timestamp=new Date}getSubject(){return this.subject}getContent(){return this.content}getTimestamp(){return this.timestamp}getType(){return this.type}loadEmailTemplate(){try{const templatePath=path.join(process.cwd(),"src","notifications","templates","email","base-email.html");return readFileSync(templatePath,"utf-8")}catch(err){return""}}applyEmailTemplate(content,data){let emailTemplate=this.loadEmailTemplate();if(!emailTemplate)return content;const currentDate=(new Date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"});return emailTemplate.replace("{{CLASSNAME}}",data.className||"").replace("{{APP_TITLE}}",data.appTitle).replace("{{CURRENT_DATE}}",currentDate).replace("{{APP_URL}}",configService.config.APP_URL||"").replace("{{PRE_HEADER}}",data.preHeader||"").replace("{{EMAIL_BODY_CONTENT}}",content)}buildContent(data){return""}}
1
+ import{configService}from"../services/ConfigService";import{loadEmailWrapperTemplate}from"./templateLoader";export class BaseNotification{subject="";contentType="html";content="";timestamp;type="test";constructor(){this.timestamp=new Date}getSubject(){return this.subject}getContent(){return this.content}getTimestamp(){return this.timestamp}getType(){return this.type}loadEmailTemplate(){return loadEmailWrapperTemplate()}applyEmailTemplate(content,data){let emailTemplate=this.loadEmailTemplate();if(!emailTemplate)return content;const currentDate=(new Date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"});return emailTemplate.replace("{{CLASSNAME}}",data.className||"").replace("{{APP_TITLE}}",data.appTitle).replace("{{CURRENT_DATE}}",currentDate).replace("{{APP_URL}}",configService.config.APP_URL||"").replace("{{PRE_HEADER}}",data.preHeader||"").replace("{{EMAIL_BODY_CONTENT}}",content)}buildContent(data){return""}}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNotification.js","sourceRoot":"","sources":["../../src/notifications/BaseNotification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAgB,gBAAgB;IAC3B,OAAO,GAAW,EAAE,CAAC;IACrB,WAAW,GAAW,MAAM,CAAC;IAC7B,OAAO,GAAW,EAAE,CAAC;IACrB,SAAS,CAAO;IAChB,IAAI,GAAsD,MAAM,CAAC;IAE3E;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAES,iBAAiB;QAC1B,IAAI,CAAC;YACJ,qCAAqC;YACrC,qDAAqD;YACrD,yCAAyC;YACzC,kFAAkF;YAClF,sBAAsB;YACtB,MAAM;YACN,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC7B,OAAO,CAAC,GAAG,EAAE,EACb,KAAK,EACL,eAAe,EACf,WAAW,EACX,OAAO,EACP,iBAAiB,CACjB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;YAChD,OAAO,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC,CAAC,8CAA8C;QAC1D,CAAC;IACF,CAAC;IAES,kBAAkB,CAC3B,OAAe,EACf,IAIC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC;QAEnC,wBAAwB;QACxB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC1D,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;SACd,CAAC,CAAC;QAEH,OAAO,aAAa;aAClB,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;aAC9C,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC;aACvC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC;aACxC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aAC1D,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;aAC/C,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAES,YAAY,CAAC,IAAyB;QAC/C,4CAA4C;QAC5C,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
1
+ {"version":3,"file":"BaseNotification.js","sourceRoot":"","sources":["../../src/notifications/BaseNotification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,OAAgB,gBAAgB;IAC3B,OAAO,GAAW,EAAE,CAAC;IACrB,WAAW,GAAW,MAAM,CAAC;IAC7B,OAAO,GAAW,EAAE,CAAC;IACrB,SAAS,CAAO;IAChB,IAAI,GAAsD,MAAM,CAAC;IAE3E;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAES,iBAAiB;QAC1B,OAAO,wBAAwB,EAAE,CAAC;IACnC,CAAC;IAES,kBAAkB,CAC3B,OAAe,EACf,IAIC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC;QAEnC,wBAAwB;QACxB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC1D,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;SACd,CAAC,CAAC;QAEH,OAAO,aAAa;aAClB,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;aAC9C,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC;aACvC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC;aACxC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aAC1D,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;aAC/C,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAES,YAAY,CAAC,IAAyB;QAC/C,4CAA4C;QAC5C,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
@@ -1,8 +1,8 @@
1
1
  import { AppSettings, IntegrationTypes } from '../../types/settings';
2
- import { SMTPChannel } from './SMTPChannel';
2
+ import { NotificationChannel } from '../NotificationChannel';
3
3
  export declare class NotificationChannelResolver {
4
4
  static secretFields: string[];
5
- static getChannel(channelType?: IntegrationTypes): Promise<SMTPChannel>;
5
+ static getChannel(channelType?: IntegrationTypes): Promise<NotificationChannel>;
6
6
  static encryptSecrets(integration: AppSettings['integration']): AppSettings['integration'];
7
7
  static decryptSecrets(integration: AppSettings['integration']): AppSettings['integration'];
8
8
  private static isAlreadyEncrypted;
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationChannelResolver.d.ts","sourceRoot":"","sources":["../../../src/notifications/channels/NotificationChannelResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAgB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,qBAAa,2BAA2B;IACvC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAqB;WAErC,UAAU,CAAC,WAAW,GAAE,gBAAyB;IAgB9D,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC;IAkB1F,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC;IAoB1F,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAQjC"}
1
+ {"version":3,"file":"NotificationChannelResolver.d.ts","sourceRoot":"","sources":["../../../src/notifications/channels/NotificationChannelResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAgB,MAAM,sBAAsB,CAAC;AAMnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,qBAAa,2BAA2B;IACvC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAqB;WAErC,UAAU,CAAC,WAAW,GAAE,gBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgB7F,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC;IAkB1F,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC;IAqB1F,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAQjC"}
@@ -1 +1 @@
1
- import Cryptr from"cryptr";import{SMTPChannel}from"./SMTPChannel";import{getNestedValue,setNestedValue}from"../../utils/helpers";import{db}from"../../db/index";import{SettingsStore}from"../../stores/SettingsStore";import{configService}from"../../services/ConfigService";export class NotificationChannelResolver{static secretFields=["smtp.password"];static async getChannel(channelType="smtp"){const settingsStore=new SettingsStore(db),settingsData=await settingsStore.getFirst(),integration=settingsData?.settings?.integration,channelConfig=integration?.[channelType];if(!integration||!channelConfig)throw new Error(`${channelType} configuration is not available`);return new SMTPChannel(channelConfig)}static encryptSecrets(integration){const integrationEncrypted=JSON.parse(JSON.stringify(integration)),cryptr=new Cryptr(configService.config.SECRET);return this.secretFields.forEach(fieldPath=>{const value=getNestedValue(integration,fieldPath);value&&"string"==typeof value&&(this.isAlreadyEncrypted(value,cryptr)?setNestedValue(integrationEncrypted,fieldPath,value):setNestedValue(integrationEncrypted,fieldPath,cryptr.encrypt(value)))}),integrationEncrypted}static decryptSecrets(integration){const integrationDecrypted=JSON.parse(JSON.stringify(integration)),cryptr=new Cryptr(configService.config.SECRET);return this.secretFields.forEach(fieldPath=>{const value=getNestedValue(integration,fieldPath);if(value&&"string"==typeof value)try{const decryptedValue=cryptr.decrypt(value);setNestedValue(integrationDecrypted,fieldPath,decryptedValue)}catch(error){setNestedValue(integrationDecrypted,fieldPath,value)}}),integrationDecrypted}static isAlreadyEncrypted(value,cryptr){try{return cryptr.decrypt(value),!0}catch(error){return!1}}}
1
+ import Cryptr from"cryptr";import{SMTPChannel}from"./SMTPChannel";import{getNestedValue,setNestedValue}from"../../utils/helpers";import{db}from"../../db/index";import{SettingsStore}from"../../stores/SettingsStore";import{configService}from"../../services/ConfigService";export class NotificationChannelResolver{static secretFields=["smtp.password"];static async getChannel(channelType="smtp"){const settingsStore=new SettingsStore(db),settingsData=await settingsStore.getFirst(),integration=settingsData?.settings?.integration,channelConfig=integration?.[channelType];if(!integration||!channelConfig)throw new Error(`${channelType} configuration is not available`);return new SMTPChannel(channelConfig)}static encryptSecrets(integration){const integrationEncrypted=JSON.parse(JSON.stringify(integration)),cryptr=new Cryptr(configService.config.SECRET);return this.secretFields.forEach(fieldPath=>{const value=getNestedValue(integration,fieldPath);value&&"string"==typeof value&&(this.isAlreadyEncrypted(value,cryptr)?setNestedValue(integrationEncrypted,fieldPath,value):setNestedValue(integrationEncrypted,fieldPath,cryptr.encrypt(value)))}),integrationEncrypted}static decryptSecrets(integration){const integrationDecrypted=JSON.parse(JSON.stringify(integration)),cryptr=new Cryptr(configService.config.SECRET);return this.secretFields.forEach(fieldPath=>{const value=getNestedValue(integration,fieldPath);if(value&&"string"==typeof value)try{const decryptedValue=cryptr.decrypt(value);setNestedValue(integrationDecrypted,fieldPath,decryptedValue)}catch(error){}}),integrationDecrypted}static isAlreadyEncrypted(value,cryptr){try{return cryptr.decrypt(value),!0}catch(error){return!1}}}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationChannelResolver.js","sourceRoot":"","sources":["../../../src/notifications/channels/NotificationChannelResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationChannelResolver.js","sourceRoot":"","sources":["../../../src/notifications/channels/NotificationChannelResolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SMTPChannel.js","sourceRoot":"","sources":["../../../src/notifications/channels/SMTPChannel.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAKpC,MAAM,OAAO,WAAW;IACf,WAAW,CAA0B;IACnC,YAAY,CAAe;IAErC,YAAY,YAA0B;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,eAAe,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;YAC7C,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,IAAI,KAAK,GAAG;YAC/B,UAAU,EAAE,KAAK;YACjB,eAAe;YACf,gBAAgB;YAChB,eAAe,EAAE,KAAK;YACtB,IAAI,EAAE;gBACL,IAAI,EAAE,UAAU,CAAC,QAAQ;gBACzB,IAAI,EAAE,UAAU,CAAC,QAAQ;aACzB;YACD,GAAG,EAAE;gBACJ,mCAAmC;gBACnC,kBAAkB,EAAE,KAAK;aACzB;YACD,IAAI,EAAE,GAAG,UAAU,KAAK,UAAU,CAAC,WAAW,GAAG;SACjD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACT,YAA8B,EAC9B,OAA4B;QAE5B,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,MAAM,WAAW,GAAG;gBACnB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI;gBACnC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;gBAClE,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE;gBAClC,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE;aAC/B,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAE3C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,8BAA8B,WAAW,CAAC,EAAE,EAAE;aACtD,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,sBAAsB;aAChD,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"SMTPChannel.js","sourceRoot":"","sources":["../../../src/notifications/channels/SMTPChannel.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAKpC,MAAM,OAAO,WAAW;IACf,WAAW,CAA0B;IACnC,YAAY,CAAe;IAErC,YAAY,YAA0B;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,eAAe,CAAC;QAE7D,4CAA4C;QAC5C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;YAC7C,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,IAAI,KAAK,GAAG;YAC/B,UAAU,EAAE,KAAK;YACjB,eAAe;YACf,gBAAgB;YAChB,eAAe,EAAE,KAAK;YACtB,IAAI,EAAE;gBACL,IAAI,EAAE,UAAU,CAAC,QAAQ;gBACzB,IAAI,EAAE,UAAU,CAAC,QAAQ;aACzB;YACD,GAAG,EAAE;gBACJ,mCAAmC;gBACnC,kBAAkB,EAAE,KAAK;aACzB;YACD,IAAI,EAAE,GAAG,UAAU,KAAK,UAAU,CAAC,WAAW,GAAG;SACjD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACT,YAA8B,EAC9B,OAA4B;QAE5B,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,MAAM,WAAW,GAAG;gBACnB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI;gBACnC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;gBAClE,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE;gBAClC,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE;aAC/B,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5D,8CAA8C;YAE9C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,8BAA8B,WAAW,CAAC,EAAE,EAAE;aACtD,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,sBAAsB;aAChD,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Load a template file and return its contents as a string
3
+ * @param templatePath - Path relative to the templates directory (e.g., 'email/email.html')
4
+ */
5
+ export declare function loadTemplate(templatePath: string): string;
6
+ /**
7
+ * Load the main email wrapper template
8
+ */
9
+ export declare function loadEmailWrapperTemplate(): string;
10
+ /**
11
+ * Load a backup notification EJS template
12
+ * @param templateName - Name of the template file (e.g., 'BackupSuccessNotification.ejs')
13
+ */
14
+ export declare function loadBackupTemplate(templateName: string): string;
15
+ //# sourceMappingURL=templateLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateLoader.d.ts","sourceRoot":"","sources":["../../src/notifications/templateLoader.ts"],"names":[],"mappings":"AAwDA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/D"}
@@ -0,0 +1 @@
1
+ import{readFileSync,existsSync}from"fs";import path from"path";import{fileURLToPath}from"url";const isPkg=void 0!==process.pkg,__filename=fileURLToPath(import.meta.url),__dirname=path.dirname(__filename);export function loadTemplate(templatePath){const basePath=function(){if(isPkg)return path.join(__dirname,"..","src","notifications","templates");const possiblePaths=[path.join(__dirname,"templates"),path.join(process.cwd(),"src","notifications","templates"),path.join(process.cwd(),"dist","notifications","templates")];for(const testPath of possiblePaths)if(existsSync(path.join(testPath,"email")))return testPath;return path.join(process.cwd(),"src","notifications","templates")}(),fullPath=path.join(basePath,templatePath);try{return readFileSync(fullPath,"utf-8")}catch(err){return""}}export function loadEmailWrapperTemplate(){return loadTemplate("email/email.html")}export function loadBackupTemplate(templateName){return loadTemplate(`email/backup/${templateName}`)}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateLoader.js","sourceRoot":"","sources":["../../src/notifications/templateLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;;;;;GAQG;AAEH,2CAA2C;AAC3C,MAAM,KAAK,GAAG,OAAQ,OAAe,CAAC,GAAG,KAAK,WAAW,CAAC;AAE1D,6DAA6D;AAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,SAAS,mBAAmB;IAC3B,IAAI,KAAK,EAAE,CAAC;QACX,oDAAoD;QACpD,gDAAgD;QAChD,8EAA8E;QAC9E,qDAAqD;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,+CAA+C;IAC/C,+EAA+E;IAC/E,mEAAmE;IACnE,0EAA0E;IAC1E,MAAM,aAAa,GAAG;QACrB,kGAAkG;QAClG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QACjC,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,CAAC;QAC7D,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC;KAC9D,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,+BAA+B;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB;IAChD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAEnD,IAAI,CAAC;QACJ,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACvC,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACtD,OAAO,YAAY,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupFailedNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupFailedNotification.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAiC,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;gBACjD,IAAI,EAAE,+BAA+B;IAOjD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM;IAOrE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM;IAkCzE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM;CAmDzE"}
1
+ {"version":3,"file":"BackupFailedNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupFailedNotification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAiC,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;gBACjD,IAAI,EAAE,+BAA+B;IAOjD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM;IAOrE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM;IAkCzE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM;CAsCzE"}
@@ -0,0 +1,109 @@
1
+ <div>
2
+ <div class="center">
3
+ <h2 class="title title-error">
4
+ <img
5
+ width="16"
6
+ height="16"
7
+ src="https://pluton.b-cdn.net/email/cross-red.png"
8
+ style="vertical-align: middle"
9
+ />
10
+ <a href="<%= appUrl %>/plan/<%= plan.id %>"><%= plan.title %></a> Failed!
11
+ </h2>
12
+ </div>
13
+ <!-- Basic ERROR Info -->
14
+ <div class="backupError">
15
+ <span class="backupErrorTitle"
16
+ ><i class="img-icon">
17
+ <img
18
+ width="14"
19
+ height="14"
20
+ src="https://pluton.b-cdn.net/email/warning-red.png"
21
+ style="vertical-align: middle"
22
+ />
23
+ </i>
24
+ <strong>Backup Failed</strong></span
25
+ >
26
+ <p>Error: <%= error %></p>
27
+ </div>
28
+
29
+ <!-- Basic Summary Info -->
30
+ <div class="backupSummary">
31
+ <div class="backupSummary_basic">
32
+ <table role="presentation" cellpadding="0" cellspacing="0">
33
+ <tr class="backupSummary_title">
34
+ <td style="text-align: left">
35
+ <i class="img-icon">
36
+ <img
37
+ width="14"
38
+ height="14"
39
+ src="https://pluton.b-cdn.net/email/uploading.png"
40
+ style="vertical-align: middle"
41
+ />
42
+ </i>
43
+ <strong>Failed to Backup <%= plan.sourceConfig.includes.length || 0 %> sources</strong>
44
+ </td>
45
+ <td style="text-align: left"></td>
46
+ <td style="text-align: right">
47
+ <i class="img-icon"
48
+ ><img
49
+ width="12"
50
+ height="12"
51
+ src="https://pluton.b-cdn.net/email/hourglass.png"
52
+ style="vertical-align: middle"
53
+ /></i>
54
+ Duration:
55
+ <strong><%= formatDuration(stats?.total_duration || 0) %></strong>
56
+ </td>
57
+ </tr>
58
+ <tr class="backupSummary_details">
59
+ <td style="text-align: left">
60
+ <span><strong><%= deviceName %></strong></span>
61
+ <span>Device</span>
62
+ </td>
63
+ <td style="text-align: center; width: 4%">
64
+ <span class="backupSummary_arrow">➝</span>
65
+ </td>
66
+ <td style="text-align: right">
67
+ <span><strong><%= storageName %></strong></span>
68
+ <span><%= storageTypeName %></span>
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ </div>
74
+ <!-- Basic Date and Time -->
75
+ <div class="backupDateTime">
76
+ <table role="presentation" cellpadding="0" cellspacing="0">
77
+ <tr class="backupSummary_date">
78
+ <td style="text-align: left">
79
+ <i class="img-icon"
80
+ ><img width="14" height="14" src="https://pluton.b-cdn.net/email/clock.png"
81
+ /></i>
82
+ Started At:
83
+ </td>
84
+ <td style="text-align: right"><%= startDate %></td>
85
+ </tr>
86
+ <tr class="backupSummary_date">
87
+ <td style="text-align: left">
88
+ <img
89
+ width="11"
90
+ height="11"
91
+ src="https://pluton.b-cdn.net/email/cross.png"
92
+ style="vertical-align: middle"
93
+ />
94
+ Failed At:
95
+ </td>
96
+ <td style="text-align: right"><%= endDate %></td>
97
+ </tr>
98
+ </table>
99
+ </div>
100
+
101
+ <!-- Notification Settings Info -->
102
+ <div class="center notificationMsg">
103
+ <p>
104
+ You are receiving this email because you've enabled Email Notification for this backup Plan.
105
+ You can customize the Notification Settings
106
+ <a href="<%= appUrl %>/plan/<%= plan.id %>/?settings">here</a>.
107
+ </p>
108
+ </div>
109
+ </div>
@@ -1 +1 @@
1
- import ejs from"ejs";import fs from"fs";import path from"path";import{configService}from"../../../../services/ConfigService";import{providers}from"../../../../utils/providers";import{formatBytes,formatDuration,formatNumberToK}from"../../../../utils/formatter";import{BaseNotification}from"../../../BaseNotification";export class BackupFailedNotification extends BaseNotification{constructor(data){super(),this.subject=`Backup Failed: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,error:error}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",stats:stats,startTime:startTime,endTime:endTime,error:error,planID:plan.id,planTitle:plan.title,planType:plan.method,planSource:{included:plan.sourceConfig?.includes.join(", ")||"",excluded:plan.sourceConfig?.excludes.join(", ")||""},eventName:"backup_failed"};return JSON.stringify(payload)}buildHTMLContent(data){const startDate=new Date(data.startTime?data.startTime:0).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}),endDate=new Date(data.endTime?data.endTime:0).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}),storageTypeName=data.storageType?providers[data.storageType]?.name||data.storageType:"",templatePath=path.join(process.cwd(),"src","notifications","templates","email","backup","BackupFailedNotification.ejs"),templateString=fs.readFileSync(templatePath,"utf-8"),renderedBody=ejs.render(templateString,{...data,appUrl:configService.config.APP_URL,storageTypeName:storageTypeName,startDate:startDate,endDate:endDate,formatBytes:formatBytes,formatDuration:formatDuration,formatNumberToK:formatNumberToK});return this.applyEmailTemplate(renderedBody,{appTitle:configService.config.APP_TITLE||"Pluton",preHeader:`Backup Failed: ${data.plan.title}`,className:"content--error"})}}
1
+ import ejs from"ejs";import{configService}from"../../../../services/ConfigService";import{providers}from"../../../../utils/providers";import{formatBytes,formatDuration,formatNumberToK}from"../../../../utils/formatter";import{BaseNotification}from"../../../BaseNotification";import{loadBackupTemplate}from"../../../templateLoader";export class BackupFailedNotification extends BaseNotification{constructor(data){super(),this.subject=`Backup Failed: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,error:error}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",stats:stats,startTime:startTime,endTime:endTime,error:error,planID:plan.id,planTitle:plan.title,planType:plan.method,planSource:{included:plan.sourceConfig?.includes.join(", ")||"",excluded:plan.sourceConfig?.excludes.join(", ")||""},eventName:"backup_failed"};return JSON.stringify(payload)}buildHTMLContent(data){const startDate=new Date(data.startTime?data.startTime:0).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}),endDate=new Date(data.endTime?data.endTime:0).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}),storageTypeName=data.storageType?providers[data.storageType]?.name||data.storageType:"",templateString=loadBackupTemplate("BackupFailedNotification.ejs"),renderedBody=ejs.render(templateString,{...data,appUrl:configService.config.APP_URL,storageTypeName:storageTypeName,startDate:startDate,endDate:endDate,formatBytes:formatBytes,formatDuration:formatDuration,formatNumberToK:formatNumberToK});return this.applyEmailTemplate(renderedBody,{appTitle:configService.config.APP_TITLE||"Pluton",preHeader:`Backup Failed: ${data.plan.title}`,className:"content--error"})}}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupFailedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupFailedNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackupFailedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupFailedNotification.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAe7D,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IAC7D,YAAY,IAAqC;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,kBAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAES,YAAY,CAAC,IAAqC;QAC3D,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAES,gBAAgB,CAAC,IAAqC;QAC/D,MAAM,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,IAAI,EACJ,KAAK,EACL,SAAS,EACT,OAAO,EACP,KAAK,GACL,GAAG,IAAI,CAAC;QACT,MAAM,OAAO,GAAkC;YAC9C,QAAQ;YACR,UAAU;YACV,WAAW;YACX,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,KAAK;YACL,SAAS;YACT,OAAO;YACP,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE;gBACX,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtD,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;aACtD;YACD,SAAS,EAAE,eAAe;SAC1B,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAES,gBAAgB,CAAC,IAAqC;QAC/D,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC3F,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACrF,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW;YACvC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW;YACvD,CAAC,CAAC,EAAE,CAAC;QAEN,MAAM,cAAc,GAAG,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE;YAC/C,GAAG,IAAI;YACP,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO;YACpC,eAAe;YACf,SAAS;YACT,OAAO;YACP,WAAW;YACX,cAAc;YACd,eAAe;SACf,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YAC5C,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,IAAI,QAAQ;YACpD,SAAS,EAAE,kBAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9C,SAAS,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACJ,CAAC;CACD"}