@plutonhq/core-backend 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/createApp.js +1 -1
  2. package/dist/createApp.js.map +1 -1
  3. package/dist/notifications/BackupNotification.d.ts +2 -0
  4. package/dist/notifications/BackupNotification.d.ts.map +1 -1
  5. package/dist/notifications/BackupNotification.js +1 -1
  6. package/dist/notifications/BackupNotification.js.map +1 -1
  7. package/dist/notifications/BaseNotification.d.ts.map +1 -1
  8. package/dist/notifications/BaseNotification.js +1 -1
  9. package/dist/notifications/BaseNotification.js.map +1 -1
  10. package/dist/notifications/channels/NotificationChannelResolver.d.ts +2 -2
  11. package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -1
  12. package/dist/notifications/channels/NotificationChannelResolver.js +1 -1
  13. package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -1
  14. package/dist/notifications/channels/SMTPChannel.js.map +1 -1
  15. package/dist/notifications/templateLoader.d.ts +15 -0
  16. package/dist/notifications/templateLoader.d.ts.map +1 -0
  17. package/dist/notifications/templateLoader.js +1 -0
  18. package/dist/notifications/templateLoader.js.map +1 -0
  19. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -1
  20. package/dist/notifications/templates/email/backup/BackupFailedNotification.ejs +109 -0
  21. package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -1
  22. package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -1
  23. package/dist/notifications/templates/email/backup/BackupFailedNotification.ts +110 -0
  24. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -1
  25. package/dist/notifications/templates/email/backup/BackupStartedNotification.ejs +159 -0
  26. package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -1
  27. package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -1
  28. package/dist/notifications/templates/email/backup/BackupStartedNotification.ts +87 -0
  29. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -1
  30. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ejs +163 -0
  31. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -1
  32. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -1
  33. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ts +97 -0
  34. package/dist/notifications/templates/email/email.html +801 -0
  35. package/dist/notifications/templates/email/test-email/TestEmailNotification.ts +27 -0
  36. package/dist/services/SettingsService.d.ts +2 -0
  37. package/dist/services/SettingsService.d.ts.map +1 -1
  38. package/dist/services/SettingsService.js +1 -1
  39. package/dist/services/SettingsService.js.map +1 -1
  40. package/dist/stores/PlanStore.d.ts.map +1 -1
  41. package/dist/stores/PlanStore.js +1 -1
  42. package/dist/stores/PlanStore.js.map +1 -1
  43. package/dist/stores/SettingsStore.d.ts +3 -1
  44. package/dist/stores/SettingsStore.d.ts.map +1 -1
  45. package/dist/stores/SettingsStore.js +1 -1
  46. package/dist/stores/SettingsStore.js.map +1 -1
  47. package/dist/types/notifications.d.ts +11 -0
  48. package/dist/types/notifications.d.ts.map +1 -1
  49. package/package.json +4 -3
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,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":"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"}
@@ -0,0 +1,110 @@
1
+ import ejs from 'ejs';
2
+ import { configService } from '../../../../services/ConfigService';
3
+ import { Plan } from '../../../../db/schema/plans';
4
+ import { providers } from '../../../../utils/providers';
5
+ import { BackupNotificationJSONPayload, BackupTaskStats } from '../../../../types/backups';
6
+ import { formatBytes, formatDuration, formatNumberToK } from '../../../../utils/formatter';
7
+ import { BaseNotification } from '../../../BaseNotification';
8
+ import { loadBackupTemplate } from '../../../templateLoader';
9
+
10
+ export interface BackupFailedNotificationPayload {
11
+ appTitle: string;
12
+ deviceName: string;
13
+ storageName: string;
14
+ storageType: string;
15
+ plan: Plan;
16
+ startTime: Date;
17
+ endTime: Date;
18
+ error: string;
19
+ stats?: BackupTaskStats;
20
+ output?: 'html' | 'json' | 'push';
21
+ }
22
+
23
+ export class BackupFailedNotification extends BaseNotification {
24
+ constructor(data: BackupFailedNotificationPayload) {
25
+ super();
26
+ this.subject = `Backup Failed: ${data.plan.title}`;
27
+ this.contentType = data.output || 'html';
28
+ this.content = this.buildContent(data);
29
+ }
30
+
31
+ protected buildContent(data: BackupFailedNotificationPayload): string {
32
+ if (this.contentType === 'json') {
33
+ return this.buildJSONContent(data);
34
+ }
35
+ return this.buildHTMLContent(data);
36
+ }
37
+
38
+ protected buildJSONContent(data: BackupFailedNotificationPayload): string {
39
+ const {
40
+ appTitle,
41
+ deviceName,
42
+ storageName,
43
+ storageType,
44
+ plan,
45
+ stats,
46
+ startTime,
47
+ endTime,
48
+ error,
49
+ } = data;
50
+ const payload: BackupNotificationJSONPayload = {
51
+ appTitle,
52
+ deviceName,
53
+ storageName,
54
+ storageType,
55
+ storagePath: plan.storagePath || '',
56
+ stats,
57
+ startTime,
58
+ endTime,
59
+ error,
60
+ planID: plan.id,
61
+ planTitle: plan.title,
62
+ planType: plan.method,
63
+ planSource: {
64
+ included: plan.sourceConfig?.includes.join(', ') || '',
65
+ excluded: plan.sourceConfig?.excludes.join(', ') || '',
66
+ },
67
+ eventName: 'backup_failed',
68
+ };
69
+ return JSON.stringify(payload);
70
+ }
71
+
72
+ protected buildHTMLContent(data: BackupFailedNotificationPayload): string {
73
+ // Generate the Email Body
74
+ const startDate = new Date(data.startTime ? data.startTime : 0).toLocaleDateString('en-US', {
75
+ year: 'numeric',
76
+ month: 'long',
77
+ day: 'numeric',
78
+ hour: 'numeric',
79
+ minute: 'numeric',
80
+ });
81
+ const endDate = new Date(data.endTime ? data.endTime : 0).toLocaleDateString('en-US', {
82
+ year: 'numeric',
83
+ month: 'long',
84
+ day: 'numeric',
85
+ hour: 'numeric',
86
+ minute: 'numeric',
87
+ });
88
+ const storageTypeName = data.storageType
89
+ ? providers[data.storageType]?.name || data.storageType
90
+ : '';
91
+
92
+ const templateString = loadBackupTemplate('BackupFailedNotification.ejs');
93
+ const renderedBody = ejs.render(templateString, {
94
+ ...data,
95
+ appUrl: configService.config.APP_URL,
96
+ storageTypeName,
97
+ startDate,
98
+ endDate,
99
+ formatBytes,
100
+ formatDuration,
101
+ formatNumberToK,
102
+ });
103
+
104
+ return this.applyEmailTemplate(renderedBody, {
105
+ appTitle: configService.config.APP_TITLE || 'Pluton',
106
+ preHeader: `Backup Failed: ${data.plan.title}`,
107
+ className: 'content--error',
108
+ });
109
+ }
110
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"BackupStartedNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupStartedNotification.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,oBAAoB;IACpC,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,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,yBAA0B,SAAQ,gBAAgB;gBAClD,IAAI,EAAE,oBAAoB;IAOtC,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAOhD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAsB9D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;CA0C9D"}
1
+ {"version":3,"file":"BackupStartedNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupStartedNotification.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,oBAAoB;IACpC,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,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,yBAA0B,SAAQ,gBAAgB;gBAClD,IAAI,EAAE,oBAAoB;IAOtC,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAOhD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAsB9D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;CA6B9D"}