@plutonhq/core-backend 0.1.23 → 0.1.25

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 (97) hide show
  1. package/dist/controllers/PlanController.js +1 -1
  2. package/dist/controllers/PlanController.js.map +1 -1
  3. package/dist/controllers/SettingsController.d.ts.map +1 -1
  4. package/dist/controllers/SettingsController.js +1 -1
  5. package/dist/controllers/SettingsController.js.map +1 -1
  6. package/dist/managers/BaseStorageManager.d.ts.map +1 -1
  7. package/dist/managers/BaseStorageManager.js +1 -1
  8. package/dist/managers/BaseStorageManager.js.map +1 -1
  9. package/dist/managers/CronManager.d.ts +5 -0
  10. package/dist/managers/CronManager.d.ts.map +1 -1
  11. package/dist/managers/CronManager.js +1 -1
  12. package/dist/managers/CronManager.js.map +1 -1
  13. package/dist/notifications/BackupNotification.d.ts +1 -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/channels/NotificationChannelResolver.d.ts.map +1 -1
  18. package/dist/notifications/channels/NotificationChannelResolver.js +1 -1
  19. package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -1
  20. package/dist/notifications/channels/NtfyChannel.d.ts +12 -0
  21. package/dist/notifications/channels/NtfyChannel.d.ts.map +1 -0
  22. package/dist/notifications/channels/NtfyChannel.js +1 -0
  23. package/dist/notifications/channels/NtfyChannel.js.map +1 -0
  24. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts +1 -0
  25. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -1
  26. package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -1
  27. package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -1
  28. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts +1 -0
  29. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -1
  30. package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -1
  31. package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -1
  32. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts +1 -0
  33. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -1
  34. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -1
  35. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -1
  36. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.d.ts +1 -0
  37. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.d.ts.map +1 -1
  38. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.js +1 -1
  39. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.js.map +1 -1
  40. package/dist/notifications/templates/push/test-ntfy/TestNtfyNotification.d.ts +14 -0
  41. package/dist/notifications/templates/push/test-ntfy/TestNtfyNotification.d.ts.map +1 -0
  42. package/dist/notifications/templates/push/test-ntfy/TestNtfyNotification.js +1 -0
  43. package/dist/notifications/templates/push/test-ntfy/TestNtfyNotification.js.map +1 -0
  44. package/dist/services/BackupServices.d.ts.map +1 -1
  45. package/dist/services/BackupServices.js +1 -1
  46. package/dist/services/BackupServices.js.map +1 -1
  47. package/dist/services/PlanService.d.ts +1 -1
  48. package/dist/services/PlanService.d.ts.map +1 -1
  49. package/dist/services/PlanService.js +1 -1
  50. package/dist/services/PlanService.js.map +1 -1
  51. package/dist/services/SettingsService.d.ts +3 -2
  52. package/dist/services/SettingsService.d.ts.map +1 -1
  53. package/dist/services/SettingsService.js +1 -1
  54. package/dist/services/SettingsService.js.map +1 -1
  55. package/dist/strategies/snapshot/SnapshotStrategy.d.ts +2 -0
  56. package/dist/strategies/snapshot/SnapshotStrategy.d.ts.map +1 -1
  57. package/dist/types/notifications.d.ts +8 -0
  58. package/dist/types/notifications.d.ts.map +1 -1
  59. package/dist/utils/executeUserScript.d.ts.map +1 -1
  60. package/dist/utils/executeUserScript.js +1 -1
  61. package/dist/utils/executeUserScript.js.map +1 -1
  62. package/dist/utils/providers/_features.d.ts +4 -4
  63. package/dist/utils/providers/_features.js +1 -1
  64. package/dist/utils/providers/_features.js.map +1 -1
  65. package/dist/utils/providers/_s3Options.d.ts.map +1 -1
  66. package/dist/utils/providers/_s3Options.js +1 -1
  67. package/dist/utils/providers/_s3Options.js.map +1 -1
  68. package/dist/utils/providers/{boxCom.d.ts → box.d.ts} +1 -1
  69. package/dist/utils/providers/box.d.ts.map +1 -0
  70. package/dist/utils/providers/box.js.map +1 -0
  71. package/dist/utils/providers/{filesCom.d.ts → filescom.d.ts} +1 -1
  72. package/dist/utils/providers/filescom.d.ts.map +1 -0
  73. package/dist/utils/providers/{filesCom.js.map → filescom.js.map} +1 -1
  74. package/dist/utils/providers/{oracle.d.ts → oracleobjectstorage.d.ts} +1 -1
  75. package/dist/utils/providers/oracleobjectstorage.d.ts.map +1 -0
  76. package/dist/utils/providers/oracleobjectstorage.js.map +1 -0
  77. package/dist/utils/providers/protondrive.js +1 -1
  78. package/dist/utils/providers/protondrive.js.map +1 -1
  79. package/dist/utils/providers/s3compatible.js +1 -1
  80. package/dist/utils/providers/s3compatible.js.map +1 -1
  81. package/dist/utils/providers/smb.js +1 -1
  82. package/dist/utils/providers/smb.js.map +1 -1
  83. package/dist/utils/providers.d.ts +1 -1
  84. package/dist/utils/providers.d.ts.map +1 -1
  85. package/dist/utils/providers.js +1 -1
  86. package/dist/utils/providers.js.map +1 -1
  87. package/dist/utils/rclone/rclone.js.map +1 -1
  88. package/dist/utils/restic/restic.js.map +1 -1
  89. package/package.json +1 -1
  90. package/dist/utils/providers/boxCom.d.ts.map +0 -1
  91. package/dist/utils/providers/boxCom.js.map +0 -1
  92. package/dist/utils/providers/filesCom.d.ts.map +0 -1
  93. package/dist/utils/providers/oracle.d.ts.map +0 -1
  94. package/dist/utils/providers/oracle.js.map +0 -1
  95. /package/dist/utils/providers/{boxCom.js → box.js} +0 -0
  96. /package/dist/utils/providers/{filesCom.js → filescom.js} +0 -0
  97. /package/dist/utils/providers/{oracle.js → oracleobjectstorage.js} +0 -0
@@ -1 +1 @@
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,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACvC,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,mBAAmB,EAClB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ;gBACxE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM;gBAC3C,CAAC,CAAC,CAAC;YACL,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;YACf,mBAAmB,EAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ;gBAClF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM;gBAChD,CAAC,CAAC,CAAC;SACL,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;IAES,iBAAiB,CAAC,IAAqC;QAChE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GACxF,IAAI,CAAC;QACN,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAElD,MAAM,MAAM,GAAqC;YAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,EAAE;YACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC,MAAM,EAAE,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,UAAU,EAAE,EAAE;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,WAAW,KAAK,eAAe,GAAG,EAAE;SAC1E,CAAC;QAEF,MAAM,MAAM,GAA0B;YACrC;gBACC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACjF;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,MAAM;aACN;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,KAAK,QAAQ,EAAE;aAChE;SACD,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE;oBACT;wBACC,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC5D,GAAG,EAAE,GAAG,MAAM,SAAS,IAAI,CAAC,EAAE,EAAE;qBAChC;iBACD;aACD,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;SAC7F,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAES,mBAAmB,CAAC,IAAqC;QAClE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GACxF,IAAI,CAAC;QACN,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAElD,MAAM,MAAM,GAAuD;YAClE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;YACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YACnD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,WAAW,KAAK,eAAe,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;YAC/E,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;SAC/D,CAAC;QAEF,MAAM,KAAK,GAAwB;YAClC,KAAK,EAAE,oBAAoB,IAAI,CAAC,KAAK,EAAE;YACvC,KAAK,EAAE,QAAQ,EAAE,MAAM;YACvB,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;CACD"}
1
+ {"version":3,"file":"BackupFailedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupFailedNotification.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,6 @@ export declare class BackupStartedNotification extends BaseNotification {
18
18
  protected buildHTMLContent(data: BackupStartedPayload): string;
19
19
  protected buildSlackContent(data: BackupStartedPayload): string;
20
20
  protected buildDiscordContent(data: BackupStartedPayload): string;
21
+ buildPushContent(data: BackupStartedPayload): string;
21
22
  }
22
23
  //# sourceMappingURL=BackupStartedNotification.d.ts.map
@@ -1 +1 @@
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;IAahD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IA0B9D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAkC9D,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IA4C/D,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;CA0BjE"}
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;IAgBhD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IA0B9D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAkC9D,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IA4C/D,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IA2BjE,gBAAgB,CAAC,IAAI,EAAE,oBAAoB;CAa3C"}
@@ -1 +1 @@
1
- import ejs from"ejs";import{configService}from"../../../../services/ConfigService";import{providers}from"../../../../utils/providers";import{formatBytes,formatNumberToK}from"../../../../utils/formatter";import{BaseNotification}from"../../../BaseNotification";import{loadBackupTemplate}from"../../../templateLoader";export class BackupStartedNotification extends BaseNotification{constructor(data){super(),this.subject=`Backup Started: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):"slack"===this.contentType?this.buildSlackContent(data):"discord"===this.contentType?this.buildDiscordContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",stats:stats,startTime:startTime,planID:plan.id,planTitle:plan.title,planType:plan.method,planSource:{included:plan.sourceConfig?.includes.join(", ")||"",excluded:plan.sourceConfig?.excludes.join(", ")||""},replicationStorages:plan.settings.replication?.enabled&&plan.settings.replication?.storages?plan.settings.replication.storages.length:0,eventName:"backup_started"};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"}),storageTypeName=data.storageType?providers[data.storageType]?.name||data.storageType:"",templateString=loadBackupTemplate("BackupStartedNotification.ejs"),renderedBody=ejs.render(templateString,{...data,appUrl:configService.config.APP_URL,storageTypeName:storageTypeName,startDate:startDate,formatBytes:formatBytes,formatNumberToK:formatNumberToK,replicationStorages:data.plan.settings.replication?.enabled&&data.plan.settings.replication?.storages?data.plan.settings.replication.storages.length:0});return this.applyEmailTemplate(renderedBody,{appTitle:configService.config.APP_TITLE||"Pluton",preHeader:`Backup Started: ${data.plan.title}`})}buildSlackContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{type:"mrkdwn",text:`*Plan:* ${plan.title}`},{type:"mrkdwn",text:`*Method:* ${plan.method}`},{type:"mrkdwn",text:`*Device:* ${deviceName}`},{type:"mrkdwn",text:`*Storage:* ${storageName} (${storageTypeName})`}],blocks=[{type:"header",text:{type:"plain_text",text:`🚀 Backup Started: ${plan.title}`,emoji:!0}},{type:"section",fields:fields}];return appUrl&&blocks.push({type:"actions",elements:[{type:"button",text:{type:"plain_text",text:"View Plan",emoji:!0},url:`${appUrl}/plan/${plan.id}`}]}),blocks.push({type:"context",elements:[{type:"mrkdwn",text:`${appTitle} • ${new Date(startTime).toLocaleString()}`}]}),JSON.stringify({blocks:blocks})}buildDiscordContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{name:"Plan",value:plan.title,inline:!0},{name:"Method",value:plan.method,inline:!0},{name:"Device",value:deviceName,inline:!0},{name:"Storage",value:`${storageName} (${storageTypeName})`,inline:!0}],embed={title:`🚀 Backup Started: ${plan.title}`,color:3900150,fields:fields,timestamp:new Date(startTime).toISOString(),footer:{text:appTitle}};return appUrl&&(embed.url=`${appUrl}/plan/${plan.id}`),JSON.stringify({embeds:[embed]})}}
1
+ import ejs from"ejs";import{configService}from"../../../../services/ConfigService";import{providers}from"../../../../utils/providers";import{formatBytes,formatNumberToK}from"../../../../utils/formatter";import{BaseNotification}from"../../../BaseNotification";import{loadBackupTemplate}from"../../../templateLoader";export class BackupStartedNotification extends BaseNotification{constructor(data){super(),this.subject=`Backup Started: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):"push"===this.contentType?this.buildPushContent(data):"slack"===this.contentType?this.buildSlackContent(data):"discord"===this.contentType?this.buildDiscordContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",stats:stats,startTime:startTime,planID:plan.id,planTitle:plan.title,planType:plan.method,planSource:{included:plan.sourceConfig?.includes.join(", ")||"",excluded:plan.sourceConfig?.excludes.join(", ")||""},replicationStorages:plan.settings.replication?.enabled&&plan.settings.replication?.storages?plan.settings.replication.storages.length:0,eventName:"backup_started"};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"}),storageTypeName=data.storageType?providers[data.storageType]?.name||data.storageType:"",templateString=loadBackupTemplate("BackupStartedNotification.ejs"),renderedBody=ejs.render(templateString,{...data,appUrl:configService.config.APP_URL,storageTypeName:storageTypeName,startDate:startDate,formatBytes:formatBytes,formatNumberToK:formatNumberToK,replicationStorages:data.plan.settings.replication?.enabled&&data.plan.settings.replication?.storages?data.plan.settings.replication.storages.length:0});return this.applyEmailTemplate(renderedBody,{appTitle:configService.config.APP_TITLE||"Pluton",preHeader:`Backup Started: ${data.plan.title}`})}buildSlackContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{type:"mrkdwn",text:`*Plan:* ${plan.title}`},{type:"mrkdwn",text:`*Method:* ${plan.method}`},{type:"mrkdwn",text:`*Device:* ${deviceName}`},{type:"mrkdwn",text:`*Storage:* ${storageName} (${storageTypeName})`}],blocks=[{type:"header",text:{type:"plain_text",text:`🚀 Backup Started: ${plan.title}`,emoji:!0}},{type:"section",fields:fields}];return appUrl&&blocks.push({type:"actions",elements:[{type:"button",text:{type:"plain_text",text:"View Plan",emoji:!0},url:`${appUrl}/plan/${plan.id}`}]}),blocks.push({type:"context",elements:[{type:"mrkdwn",text:`${appTitle} • ${new Date(startTime).toLocaleString()}`}]}),JSON.stringify({blocks:blocks})}buildDiscordContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{name:"Plan",value:plan.title,inline:!0},{name:"Method",value:plan.method,inline:!0},{name:"Device",value:deviceName,inline:!0},{name:"Storage",value:`${storageName} (${storageTypeName})`,inline:!0}],embed={title:`🚀 Backup Started: ${plan.title}`,color:3900150,fields:fields,timestamp:new Date(startTime).toISOString(),footer:{text:appTitle}};return appUrl&&(embed.url=`${appUrl}/plan/${plan.id}`),JSON.stringify({embeds:[embed]})}buildPushContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan}=data,sourceCount=plan.sourceConfig.includes.length,payload={title:`${appTitle}: Backup Started for Plan "${plan.title}"`,body:`Backing up ${sourceCount} sources from ${deviceName} to ${storageName}(${storageType}).`,priority:3,emoji:"arrows_counterclockwise",buttonUrl:`${configService.config.APP_URL}/plan/${data.plan.id}`,buttonText:"View Plan"};return JSON.stringify(payload)}}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupStartedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupStartedNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackupStartedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupStartedNotification.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,6 @@ export declare class BackupSuccessNotification extends BaseNotification {
20
20
  protected buildHTMLContent(data: BackupSuccessNotificationPayload): string;
21
21
  protected buildSlackContent(data: BackupSuccessNotificationPayload): string;
22
22
  protected buildDiscordContent(data: BackupSuccessNotificationPayload): string;
23
+ buildPushContent(data: BackupSuccessNotificationPayload): string;
23
24
  }
24
25
  //# sourceMappingURL=BackupSuccessNotification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackupSuccessNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupSuccessNotification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EACN,qBAAqB,EAErB,sBAAsB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,WAAW,gCAAgC;IAChD,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,CAAC,EAAE,qBAAqB,CAAC;IAC9B,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACxD;AAED,qBAAa,yBAA0B,SAAQ,gBAAgB;gBAClD,IAAI,EAAE,gCAAgC;IAOlD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAatE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAsC1E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IA0C1E,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAkF3E,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;CAiE7E"}
1
+ {"version":3,"file":"BackupSuccessNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupSuccessNotification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EACN,qBAAqB,EAErB,sBAAsB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,WAAW,gCAAgC;IAChD,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,CAAC,EAAE,qBAAqB,CAAC;IAC9B,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACxD;AAED,qBAAa,yBAA0B,SAAQ,gBAAgB;gBAClD,IAAI,EAAE,gCAAgC;IAOlD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAgBtE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAsC1E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IA0C1E,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAuF3E,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,gCAAgC,GAAG,MAAM;IAmE7E,gBAAgB,CAAC,IAAI,EAAE,gCAAgC;CAgCvD"}
@@ -1 +1 @@
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 BackupSuccessNotification extends BaseNotification{constructor(data){super(),this.subject=`Backup Complete: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):"slack"===this.contentType?this.buildSlackContent(data):"discord"===this.contentType?this.buildDiscordContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,replicationFailures:replicationFailures}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",stats:stats,startTime:startTime,endTime:endTime,planID:plan.id,planTitle:plan.title,planType:plan.method,planSource:{included:plan.sourceConfig?.includes.join(", ")||"",excluded:plan.sourceConfig?.excludes.join(", ")||""},replicationStorages:plan.settings.replication?.enabled&&plan.settings.replication?.storages?plan.settings.replication.storages.length:0,eventName:"backup_success",...replicationFailures&&replicationFailures.length>0?{replicationFailures:replicationFailures}:{}};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("BackupSuccessNotification.ejs"),renderedBody=ejs.render(templateString,{...data,appUrl:configService.config.APP_URL,storageTypeName:storageTypeName,startDate:startDate,endDate:endDate,formatBytes:formatBytes,formatDuration:formatDuration,formatNumberToK:formatNumberToK,replicationStorages:data.plan.settings.replication?.enabled&&data.plan.settings.replication?.storages?data.plan.settings.replication.storages.length:0,replicationFailures:data.replicationFailures||[]});return this.applyEmailTemplate(renderedBody,{appTitle:configService.config.APP_TITLE||"Pluton",preHeader:`Backup Success: ${data.plan.title}`})}buildSlackContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,replicationFailures:replicationFailures}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{type:"mrkdwn",text:`*Plan:* ${plan.title}`},{type:"mrkdwn",text:`*Method:* ${plan.method}`},{type:"mrkdwn",text:`*Device:* ${deviceName}`},{type:"mrkdwn",text:`*Storage:* ${storageName} (${storageTypeName})`}];stats&&(stats.total_files_processed&&fields.push({type:"mrkdwn",text:`*Files:* ${formatNumberToK(stats.total_files_processed)}`}),stats.total_bytes_processed&&fields.push({type:"mrkdwn",text:`*Size:* ${formatBytes(stats.total_bytes_processed)}`}),stats.total_duration&&fields.push({type:"mrkdwn",text:`*Duration:* ${formatDuration(stats.total_duration)}`}));const blocks=[{type:"header",text:{type:"plain_text",text:`✅ Backup Complete: ${plan.title}`,emoji:!0}},{type:"section",fields:fields}];return replicationFailures&&replicationFailures.length>0&&blocks.push({type:"section",text:{type:"mrkdwn",text:`⚠️ *Replication Failures:* ${replicationFailures.map(f=>f.storageName||f.storageId).join(", ")}`}}),appUrl&&blocks.push({type:"actions",elements:[{type:"button",text:{type:"plain_text",text:"View Plan",emoji:!0},url:`${appUrl}/plan/${plan.id}`}]}),blocks.push({type:"context",elements:[{type:"mrkdwn",text:`${appTitle} • ${new Date(startTime).toLocaleString()}`}]}),JSON.stringify({blocks:blocks})}buildDiscordContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,replicationFailures:replicationFailures}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{name:"Plan",value:plan.title,inline:!0},{name:"Method",value:plan.method,inline:!0},{name:"Device",value:deviceName,inline:!0},{name:"Storage",value:`${storageName} (${storageTypeName})`,inline:!0}];stats&&(stats.total_files_processed&&fields.push({name:"Files",value:formatNumberToK(stats.total_files_processed).toString(),inline:!0}),stats.total_bytes_processed&&fields.push({name:"Size",value:formatBytes(stats.total_bytes_processed),inline:!0}),stats.total_duration&&fields.push({name:"Duration",value:formatDuration(stats.total_duration),inline:!0})),replicationFailures&&replicationFailures.length>0&&fields.push({name:"⚠️ Replication Failures",value:replicationFailures.map(f=>f.storageName||f.storageId).join(", "),inline:!1});const embed={title:`✅ Backup Complete: ${plan.title}`,color:2278750,fields:fields,timestamp:new Date(startTime).toISOString(),footer:{text:appTitle}};return appUrl&&(embed.url=`${appUrl}/plan/${plan.id}`),JSON.stringify({embeds:[embed]})}}
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 BackupSuccessNotification extends BaseNotification{constructor(data){super(),this.subject=`Backup Complete: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):"push"===this.contentType?this.buildPushContent(data):"slack"===this.contentType?this.buildSlackContent(data):"discord"===this.contentType?this.buildDiscordContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,replicationFailures:replicationFailures}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",stats:stats,startTime:startTime,endTime:endTime,planID:plan.id,planTitle:plan.title,planType:plan.method,planSource:{included:plan.sourceConfig?.includes.join(", ")||"",excluded:plan.sourceConfig?.excludes.join(", ")||""},replicationStorages:plan.settings.replication?.enabled&&plan.settings.replication?.storages?plan.settings.replication.storages.length:0,eventName:"backup_success",...replicationFailures&&replicationFailures.length>0?{replicationFailures:replicationFailures}:{}};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("BackupSuccessNotification.ejs"),renderedBody=ejs.render(templateString,{...data,appUrl:configService.config.APP_URL,storageTypeName:storageTypeName,startDate:startDate,endDate:endDate,formatBytes:formatBytes,formatDuration:formatDuration,formatNumberToK:formatNumberToK,replicationStorages:data.plan.settings.replication?.enabled&&data.plan.settings.replication?.storages?data.plan.settings.replication.storages.length:0,replicationFailures:data.replicationFailures||[]});return this.applyEmailTemplate(renderedBody,{appTitle:configService.config.APP_TITLE||"Pluton",preHeader:`Backup Success: ${data.plan.title}`})}buildSlackContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,replicationFailures:replicationFailures}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",hasReplicationFailures=replicationFailures&&replicationFailures.length>0,fields=[{type:"mrkdwn",text:`*Plan:* ${plan.title}`},{type:"mrkdwn",text:`*Method:* ${plan.method}`},{type:"mrkdwn",text:`*Device:* ${deviceName}`},{type:"mrkdwn",text:`*Storage:* ${storageName} (${storageTypeName})`}];stats&&(stats.total_files_processed&&fields.push({type:"mrkdwn",text:`*Files:* ${formatNumberToK(stats.total_files_processed)}`}),stats.total_bytes_processed&&fields.push({type:"mrkdwn",text:`*Size:* ${formatBytes(stats.total_bytes_processed)}`}),stats.total_duration&&fields.push({type:"mrkdwn",text:`*Duration:* ${formatDuration(stats.total_duration)}`}));const blocks=[{type:"header",text:{type:"plain_text",text:`${hasReplicationFailures?"⚠️":"✅"} Backup Complete: ${plan.title}`,emoji:!0}},{type:"section",fields:fields}];return hasReplicationFailures&&blocks.push({type:"section",text:{type:"mrkdwn",text:`⚠️ *Replication Failures:* ${replicationFailures.map(f=>f.storageName||f.storageId).join(", ")}`}}),appUrl&&blocks.push({type:"actions",elements:[{type:"button",text:{type:"plain_text",text:"View Plan",emoji:!0},url:`${appUrl}/plan/${plan.id}`}]}),blocks.push({type:"context",elements:[{type:"mrkdwn",text:`${appTitle} • ${new Date(startTime).toLocaleString()}`}]}),JSON.stringify({blocks:blocks})}buildDiscordContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,startTime:startTime,endTime:endTime,replicationFailures:replicationFailures}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",hasReplicationFailures=replicationFailures&&replicationFailures.length>0,fields=[{name:"Plan",value:plan.title,inline:!0},{name:"Method",value:plan.method,inline:!0},{name:"Device",value:deviceName,inline:!0},{name:"Storage",value:`${storageName} (${storageTypeName})`,inline:!0}];stats&&(stats.total_files_processed&&fields.push({name:"Files",value:formatNumberToK(stats.total_files_processed).toString(),inline:!0}),stats.total_bytes_processed&&fields.push({name:"Size",value:formatBytes(stats.total_bytes_processed),inline:!0}),stats.total_duration&&fields.push({name:"Duration",value:formatDuration(stats.total_duration),inline:!0})),replicationFailures&&replicationFailures.length>0&&fields.push({name:"⚠️ Replication Failures",value:replicationFailures.map(f=>f.storageName||f.storageId).join(", "),inline:!1});const embed={title:`${hasReplicationFailures?"⚠️":"✅"} Backup Complete: ${plan.title}`,color:hasReplicationFailures?16096779:2278750,fields:fields,timestamp:new Date(startTime).toISOString(),footer:{text:appTitle}};return appUrl&&(embed.url=`${appUrl}/plan/${plan.id}`),JSON.stringify({embeds:[embed]})}buildPushContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,stats:stats,replicationFailures:replicationFailures}=data,hasReplicationFailures=replicationFailures&&replicationFailures.length>0,sourceCount=plan.sourceConfig.includes.length,payload={title:`${appTitle}: Backup Successful for Plan "${plan.title}"`,body:`Successfully Backed up ${sourceCount} sources from ${deviceName} to ${storageName}(${storageType}). \n \n Changes: ${(()=>{const newCount=(stats?.files_new||0)+(stats?.dirs_new||0),modifiedCount=(stats?.files_changed||0)+(stats?.dirs_changed||0),parts=[];return newCount>0&&parts.push(`${newCount} New`),modifiedCount>0&&parts.push(`${modifiedCount} Modified`),parts.length>0?parts.join(" / "):"No Changes"})()} \n Total Size: ${formatBytes(stats?.total_bytes_processed||0)}\n Total Files: ${formatNumberToK(stats?.total_files_processed||0)}\n Total Duration: ${formatDuration(stats?.total_duration||0)}\n ${hasReplicationFailures?`⚠️ Replication Failures: ${replicationFailures.map(f=>f.storageName||f.storageId).join(", ")}`:""}`,priority:3,emoji:hasReplicationFailures?"warning":"white_check_mark",buttonUrl:`${configService.config.APP_URL}/plan/${data.plan.id}`,buttonText:"View Plan"};return JSON.stringify(payload)}}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupSuccessNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupSuccessNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackupSuccessNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/BackupSuccessNotification.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,6 @@ export declare class ReplicationFailedNotification extends BaseNotification {
22
22
  protected buildHTMLContent(data: ReplicationFailedNotificationPayload): string;
23
23
  protected buildSlackContent(data: ReplicationFailedNotificationPayload): string;
24
24
  protected buildDiscordContent(data: ReplicationFailedNotificationPayload): string;
25
+ buildPushContent(data: ReplicationFailedNotificationPayload): string;
25
26
  }
26
27
  //# sourceMappingURL=ReplicationFailedNotification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReplicationFailedNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/ReplicationFailedNotification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,WAAW,oCAAoC;IACpD,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,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACxD;AAED,qBAAa,6BAA8B,SAAQ,gBAAgB;gBACtD,IAAI,EAAE,oCAAoC;IAOtD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IAa1E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IA8B9E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IAsC9E,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IAkE/E,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;CA6CjF"}
1
+ {"version":3,"file":"ReplicationFailedNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/ReplicationFailedNotification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,WAAW,oCAAoC;IACpD,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,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACxD;AAED,qBAAa,6BAA8B,SAAQ,gBAAgB;gBACtD,IAAI,EAAE,oCAAoC;IAOtD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IAa1E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IA8B9E,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IAsC9E,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IAkE/E,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,oCAAoC,GAAG,MAAM;IA8CjF,gBAAgB,CAAC,IAAI,EAAE,oCAAoC;CAgB3D"}
@@ -1 +1 @@
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 ReplicationFailedNotification extends BaseNotification{constructor(data){super(),this.subject=`Replication Failed: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):"slack"===this.contentType?this.buildSlackContent(data):"discord"===this.contentType?this.buildDiscordContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,startTime:startTime,endTime:endTime,error:error,failedMirrors:failedMirrors}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",startTime:startTime,endTime:endTime,error:error,failedMirrors:failedMirrors,planID:plan.id,planTitle:plan.title,planType:plan.method,eventName:"replication_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("ReplicationFailedNotification.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:`Replication Failed: ${data.plan.title}`,className:"content--error"})}buildSlackContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,error:error,failedMirrors:failedMirrors,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{type:"mrkdwn",text:`*Plan:* ${plan.title}`},{type:"mrkdwn",text:`*Device:* ${deviceName}`},{type:"mrkdwn",text:`*Storage:* ${storageName} (${storageTypeName})`}],blocks=[{type:"header",text:{type:"plain_text",text:`⚠️ Replication Failed: ${plan.title}`,emoji:!0}},{type:"section",fields:fields},{type:"section",text:{type:"mrkdwn",text:`*Error:*\n\`\`\`${error}\`\`\``}}];if(failedMirrors&&failedMirrors.length>0){const mirrorText=failedMirrors.map(m=>`• ${m.storageName}${m.error?`: ${m.error}`:""}`).join("\n");blocks.push({type:"section",text:{type:"mrkdwn",text:`*Failed Mirrors:*\n${mirrorText}`}})}return appUrl&&blocks.push({type:"actions",elements:[{type:"button",text:{type:"plain_text",text:"View Plan",emoji:!0},url:`${appUrl}/plan/${plan.id}`}]}),blocks.push({type:"context",elements:[{type:"mrkdwn",text:`${appTitle} • ${new Date(startTime).toLocaleString()}`}]}),JSON.stringify({blocks:blocks})}buildDiscordContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,error:error,failedMirrors:failedMirrors,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{name:"Plan",value:plan.title,inline:!0},{name:"Device",value:deviceName,inline:!0},{name:"Storage",value:`${storageName} (${storageTypeName})`,inline:!0},{name:"Error",value:`\`\`\`${error}\`\`\``,inline:!1}];failedMirrors&&failedMirrors.length>0&&fields.push({name:"Failed Mirrors",value:failedMirrors.map(m=>`• ${m.storageName}${m.error?`: ${m.error}`:""}`).join("\n"),inline:!1});const embed={title:`⚠️ Replication Failed: ${plan.title}`,color:16096779,fields:fields,timestamp:new Date(startTime).toISOString(),footer:{text:appTitle}};return appUrl&&(embed.url=`${appUrl}/plan/${plan.id}`),JSON.stringify({embeds:[embed]})}}
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 ReplicationFailedNotification extends BaseNotification{constructor(data){super(),this.subject=`Replication Failed: ${data.plan.title}`,this.contentType=data.output||"html",this.content=this.buildContent(data)}buildContent(data){return"json"===this.contentType?this.buildJSONContent(data):"slack"===this.contentType?this.buildSlackContent(data):"discord"===this.contentType?this.buildDiscordContent(data):this.buildHTMLContent(data)}buildJSONContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,startTime:startTime,endTime:endTime,error:error,failedMirrors:failedMirrors}=data,payload={appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,storagePath:plan.storagePath||"",startTime:startTime,endTime:endTime,error:error,failedMirrors:failedMirrors,planID:plan.id,planTitle:plan.title,planType:plan.method,eventName:"replication_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("ReplicationFailedNotification.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:`Replication Failed: ${data.plan.title}`,className:"content--error"})}buildSlackContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,error:error,failedMirrors:failedMirrors,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{type:"mrkdwn",text:`*Plan:* ${plan.title}`},{type:"mrkdwn",text:`*Device:* ${deviceName}`},{type:"mrkdwn",text:`*Storage:* ${storageName} (${storageTypeName})`}],blocks=[{type:"header",text:{type:"plain_text",text:`⚠️ Replication Failed: ${plan.title}`,emoji:!0}},{type:"section",fields:fields},{type:"section",text:{type:"mrkdwn",text:`*Error:*\n\`\`\`${error}\`\`\``}}];if(failedMirrors&&failedMirrors.length>0){const mirrorText=failedMirrors.map(m=>`• ${m.storageName}${m.error?`: ${m.error}`:""}`).join("\n");blocks.push({type:"section",text:{type:"mrkdwn",text:`*Failed Mirrors:*\n${mirrorText}`}})}return appUrl&&blocks.push({type:"actions",elements:[{type:"button",text:{type:"plain_text",text:"View Plan",emoji:!0},url:`${appUrl}/plan/${plan.id}`}]}),blocks.push({type:"context",elements:[{type:"mrkdwn",text:`${appTitle} • ${new Date(startTime).toLocaleString()}`}]}),JSON.stringify({blocks:blocks})}buildDiscordContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,error:error,failedMirrors:failedMirrors,startTime:startTime}=data,storageTypeName=storageType?providers[storageType]?.name||storageType:"",appUrl=configService.config.APP_URL||"",fields=[{name:"Plan",value:plan.title,inline:!0},{name:"Device",value:deviceName,inline:!0},{name:"Storage",value:`${storageName} (${storageTypeName})`,inline:!0},{name:"Error",value:`\`\`\`${error}\`\`\``,inline:!1}];failedMirrors&&failedMirrors.length>0&&fields.push({name:"Failed Mirrors",value:failedMirrors.map(m=>`• ${m.storageName}${m.error?`: ${m.error}`:""}`).join("\n"),inline:!1});const embed={title:`⚠️ Replication Failed: ${plan.title}`,color:16096779,fields:fields,timestamp:new Date(startTime).toISOString(),footer:{text:appTitle}};return appUrl&&(embed.url=`${appUrl}/plan/${plan.id}`),JSON.stringify({embeds:[embed]})}buildPushContent(data){const{appTitle:appTitle,deviceName:deviceName,storageName:storageName,storageType:storageType,plan:plan,failedMirrors:failedMirrors=[]}=data,sourceCount=plan.sourceConfig.includes.length,payload={title:`${appTitle}: Replication Failed for Plan "${plan.title}"`,body:`Failed to replicate ${sourceCount} sources from ${deviceName} to ${failedMirrors.length} storages. \n ${failedMirrors.map(mirror=>`${mirror.storageName} : (${mirror.error||"Unknown Error"})`).join(", ")}\n `,priority:3,emoji:"white_check_mark",buttonUrl:`${configService.config.APP_URL}/plan/${data.plan.id}`,buttonText:"View Plan"};return JSON.stringify(payload)}}
@@ -1 +1 @@
1
- {"version":3,"file":"ReplicationFailedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/ReplicationFailedNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReplicationFailedNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/email/backup/ReplicationFailedNotification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IntegrationTypes } from '../../../../types/settings';
2
+ import { BaseNotification } from '../../../BaseNotification';
3
+ export declare class TestNtfyNotification extends BaseNotification {
4
+ integrationName: string;
5
+ constructor(data: {
6
+ integrationType: IntegrationTypes;
7
+ appTitle: string;
8
+ });
9
+ protected buildContent(data: {
10
+ integrationType: IntegrationTypes;
11
+ appTitle: string;
12
+ }): string;
13
+ }
14
+ //# sourceMappingURL=TestNtfyNotification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestNtfyNotification.d.ts","sourceRoot":"","sources":["../../../../../src/notifications/templates/push/test-ntfy/TestNtfyNotification.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,qBAAa,oBAAqB,SAAQ,gBAAgB;IACzD,eAAe,SAAM;gBACT,IAAI,EAAE;QAAE,eAAe,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAOzE,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,eAAe,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;CAG7F"}
@@ -0,0 +1 @@
1
+ import{configService}from"../../../../services/ConfigService";import{INTEGRATIONS_AVAILABLE}from"../../../../types/settings";import{BaseNotification}from"../../../BaseNotification";export class TestNtfyNotification extends BaseNotification{integrationName="";constructor(data){super();const integrationType=data.integrationType;this.integrationName=INTEGRATIONS_AVAILABLE[integrationType].name,this.subject=`${this.integrationName} Integration Successful`,this.content=this.buildContent(data)}buildContent(data){return`${configService.config.APP_TITLE||"Pluton"} can successfully send push notifications using ${this.integrationName}.`}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestNtfyNotification.js","sourceRoot":"","sources":["../../../../../src/notifications/templates/push/test-ntfy/TestNtfyNotification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAoB,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IACzD,eAAe,GAAG,EAAE,CAAC;IACrB,YAAY,IAA6D;QACxE,KAAK,EAAE,CAAC;QACR,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,eAAe,yBAAyB,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACS,YAAY,CAAC,IAA6D;QACnF,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,IAAI,QAAQ,mDAAmD,IAAI,CAAC,eAAe,GAAG,CAAC;IAChI,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupServices.d.ts","sourceRoot":"","sources":["../../src/services/BackupServices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACN,gBAAgB,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,cAAc,EAGd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,qBAAa,aAAa;IAExB,SAAS,CAAC,kBAAkB,EAAE,mBAAmB;IACjD,SAAS,CAAC,cAAc,EAAE,iBAAiB;IAC3C,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,YAAY,EAAE,YAAY;gBAL1B,kBAAkB,EAAE,mBAAmB,EACvC,cAAc,EAAE,iBAAiB,EACjC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAGrC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOxE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAO7C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe;;;;;;;;mBAjClD,CAAC;;;;;;;;IAiFb,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBjD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA8B9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBpE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IA8B7C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBjD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsCnF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAWnE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4ClF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBxD"}
1
+ {"version":3,"file":"BackupServices.d.ts","sourceRoot":"","sources":["../../src/services/BackupServices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACN,gBAAgB,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,cAAc,EAGd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,qBAAa,aAAa;IAExB,SAAS,CAAC,kBAAkB,EAAE,mBAAmB;IACjD,SAAS,CAAC,cAAc,EAAE,iBAAiB;IAC3C,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,YAAY,EAAE,YAAY;gBAL1B,kBAAkB,EAAE,mBAAmB,EACvC,cAAc,EAAE,iBAAiB,EACjC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAGrC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOxE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAO7C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe;;;;;;;;mBAlClD,CAAC;;;;;;;;IAkFb,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBjD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA8B9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBpE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IA8B7C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAejD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA2CnF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAWnE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4ClF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBxD"}
@@ -1 +1 @@
1
- import{sql}from"drizzle-orm";import{RemoteStrategy as RemoteSnapshotStrategy,LocalStrategy as LocalSnapshotStrategy}from"../strategies/snapshot";import{RemoteStrategy as RemoteBackupStrategy,LocalStrategy as LocalBackupStrategy}from"../strategies/backup";import{jobQueue}from"../jobs/JobQueue";export class BackupService{localSnapshotAgent;localPlanAgent;planStore;backupStore;restoreStore;storageStore;constructor(localSnapshotAgent,localPlanAgent,planStore,backupStore,restoreStore,storageStore){this.localSnapshotAgent=localSnapshotAgent,this.localPlanAgent=localPlanAgent,this.planStore=planStore,this.backupStore=backupStore,this.restoreStore=restoreStore,this.storageStore=storageStore}getSnapshotStrategy(deviceId,method){return"main"!==deviceId?new RemoteSnapshotStrategy(deviceId):new LocalSnapshotStrategy(this.localSnapshotAgent)}getBackupStrategy(deviceId){return"main"!==deviceId?new RemoteBackupStrategy(deviceId):new LocalBackupStrategy(this.localPlanAgent)}async deleteBackup(backupId,removeSnapshot=!1){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const strategy=this.getSnapshotStrategy(backup.sourceId,backup.method),storageName=await this.getStorageName(backup.storageId),removeResult=await strategy.removeSnapshot(backup.planId,backupId,{storageName:storageName,storagePath:backup.storagePath||"",encryption:backup.encryption||!0,mirrors:backup.mirrors||[]});if(removeResult.stats){const primaryStats=removeResult.stats.primary,mirrorStats=removeResult.stats.mirrors,currentMirrors=backup.mirrors||[],planStatsUpdate={size:primaryStats?.total_size||0,snapshots:primaryStats?.snapshots||[]};mirrorStats&&Object.keys(mirrorStats).length>0&&(planStatsUpdate.mirrors=Object.entries(mirrorStats).map(([replicationId,stats])=>{const mirror=currentMirrors.find(m=>m.replicationId===replicationId);return{replicationId:mirror?.replicationId||replicationId,storageId:mirror?.storageId||"",storagePath:mirror?.storagePath||"",size:stats.total_size,snapshots:stats.snapshots}})),await this.planStore.update(backup.planId,{stats:planStatsUpdate})}return await this.backupStore.delete(backup.id),removeResult}async getBackupDownload(backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice,backup.method),downloadResult=await strategy.getSnapshotDownload(backup.planId,backupId);if(!downloadResult.success)throw new Error("string"==typeof downloadResult.result?downloadResult.result:"Failed to get Backup Download");return downloadResult.result}async generateBackupDownload(backupId,replicationId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");let effectiveStorageId=backup.storageId,effectiveStoragePath=backup.storagePath;if(replicationId){const mirror=(backup.mirrors||[]).find(m=>m.replicationId===replicationId);mirror&&(effectiveStorageId=mirror.storageId,effectiveStoragePath=mirror.storagePath)}const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice,backup.method),storageName=await this.getStorageName(effectiveStorageId),downloadResult=await strategy.downloadSnapshot(backup.planId,backupId,"",{storageName:storageName,storagePath:effectiveStoragePath,encryption:backup.encryption||!0});if(!downloadResult.success)throw new Error(downloadResult.result||"Failed to generate Download Link");return downloadResult.result}async cancelBackupDownload(planId,backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice,backup.method),downloadResult=await strategy.cancelSnapshotDownload(planId,backupId);if(!downloadResult.success)throw new Error(downloadResult.result||"Failed to cancel Download");return await this.backupStore.update(backup.id,{download:null}),downloadResult.result}async cancelBackup(planId,backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getBackupStrategy(backupDevice),cancelResult=strategy.cancelBackup?await strategy.cancelBackup(planId,backupId):{success:!1,result:""};if(!cancelResult.success)throw new Error(cancelResult.result||"Failed to cancel backup");return"main"===backupDevice&&(jobQueue.remove("Backup",planId),jobQueue.remove("RescueBackup",planId)),await this.backupStore.update(backup.id,{status:"cancelled",inProgress:!1,ended:sql`(unixepoch())`}),cancelResult}async getBackupProgress(backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getBackupStrategy(backupDevice),progressResult=strategy.getBackupProgress?await strategy.getBackupProgress(backup.planId,backupId):{success:!1,result:""};if(!progressResult.success)throw new Error(progressResult.result||"Failed to get Backup Progress");return progressResult.result}async getSnapshotFiles(backupId,replicationId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice);let effectiveStorageId=backup.storageId,effectiveStoragePath=backup.storagePath;if(replicationId){const mirror=(backup.mirrors||[]).find(m=>m.replicationId===replicationId);mirror&&(effectiveStorageId=mirror.storageId,effectiveStoragePath=mirror.storagePath)}const storageName=await this.getStorageName(effectiveStorageId),snapshotFilesResult=await strategy.getSnapshotFiles(backup.planId,backup.id,{storageName:storageName,storagePath:effectiveStoragePath,encryption:backup.encryption});if(!snapshotFilesResult.success||!Array.isArray(snapshotFilesResult.result))throw new Error("string"==typeof snapshotFilesResult.result?snapshotFilesResult.result:"Failed to get Snapshot Files");return snapshotFilesResult.result}async updateBackup(backupId,data){if(!await this.backupStore.getById(backupId))throw new Error("Backup not found");const title=data.title?.trim()||"",description=data.description?.trim()||"";return await this.backupStore.update(backupId,{title:title,description:description})}async retryFailedReplications(backupId,replicationId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const currentMirrors=backup.mirrors||[];if(0===currentMirrors.filter(m=>"failed"===m.status).length)throw new Error("No failed replications to retry");const updatedMirrors=replicationId?currentMirrors.map(m=>m.replicationId===replicationId?{...m,status:"pending",error:void 0}:m):currentMirrors.map(m=>"failed"===m.status?{...m,status:"pending",error:void 0}:m);await this.backupStore.update(backupId,{mirrors:updatedMirrors});const failedReplicationIds=updatedMirrors.filter(m=>"pending"===m.status).map(m=>m.replicationId),backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice),retryResult=await strategy.retryFailedReplication(backup.planId,backupId,failedReplicationIds);if(!retryResult.success)throw new Error(retryResult.result||"Failed to retry failed replications");return retryResult.result}async getStorageName(storageId){let storageName="";if("local"!==storageId)try{const storage=await this.storageStore.getById(storageId);storage?.name&&(storageName=storage.name)}catch(error){return storageName}else storageName="local";return storageName}}
1
+ import{sql}from"drizzle-orm";import{RemoteStrategy as RemoteSnapshotStrategy,LocalStrategy as LocalSnapshotStrategy}from"../strategies/snapshot";import{RemoteStrategy as RemoteBackupStrategy,LocalStrategy as LocalBackupStrategy}from"../strategies/backup";import{jobQueue}from"../jobs/JobQueue";import{AppError,NotFoundError}from"../utils/AppError";export class BackupService{localSnapshotAgent;localPlanAgent;planStore;backupStore;restoreStore;storageStore;constructor(localSnapshotAgent,localPlanAgent,planStore,backupStore,restoreStore,storageStore){this.localSnapshotAgent=localSnapshotAgent,this.localPlanAgent=localPlanAgent,this.planStore=planStore,this.backupStore=backupStore,this.restoreStore=restoreStore,this.storageStore=storageStore}getSnapshotStrategy(deviceId,method){return"main"!==deviceId?new RemoteSnapshotStrategy(deviceId):new LocalSnapshotStrategy(this.localSnapshotAgent)}getBackupStrategy(deviceId){return"main"!==deviceId?new RemoteBackupStrategy(deviceId):new LocalBackupStrategy(this.localPlanAgent)}async deleteBackup(backupId,removeSnapshot=!1){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const strategy=this.getSnapshotStrategy(backup.sourceId,backup.method),storageName=await this.getStorageName(backup.storageId),removeResult=await strategy.removeSnapshot(backup.planId,backupId,{storageName:storageName,storagePath:backup.storagePath||"",encryption:backup.encryption||!0,mirrors:backup.mirrors||[]});if(removeResult.stats){const primaryStats=removeResult.stats.primary,mirrorStats=removeResult.stats.mirrors,currentMirrors=backup.mirrors||[],planStatsUpdate={size:primaryStats?.total_size||0,snapshots:primaryStats?.snapshots||[]};mirrorStats&&Object.keys(mirrorStats).length>0&&(planStatsUpdate.mirrors=Object.entries(mirrorStats).map(([replicationId,stats])=>{const mirror=currentMirrors.find(m=>m.replicationId===replicationId);return{replicationId:mirror?.replicationId||replicationId,storageId:mirror?.storageId||"",storagePath:mirror?.storagePath||"",size:stats.total_size,snapshots:stats.snapshots}})),await this.planStore.update(backup.planId,{stats:planStatsUpdate})}return await this.backupStore.delete(backup.id),removeResult}async getBackupDownload(backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice,backup.method),downloadResult=await strategy.getSnapshotDownload(backup.planId,backupId);if(!downloadResult.success)throw new Error("string"==typeof downloadResult.result?downloadResult.result:"Failed to get Backup Download");return downloadResult.result}async generateBackupDownload(backupId,replicationId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");let effectiveStorageId=backup.storageId,effectiveStoragePath=backup.storagePath;if(replicationId){const mirror=(backup.mirrors||[]).find(m=>m.replicationId===replicationId);mirror&&(effectiveStorageId=mirror.storageId,effectiveStoragePath=mirror.storagePath)}const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice,backup.method),storageName=await this.getStorageName(effectiveStorageId),downloadResult=await strategy.downloadSnapshot(backup.planId,backupId,"",{storageName:storageName,storagePath:effectiveStoragePath,encryption:backup.encryption||!0});if(!downloadResult.success)throw new Error(downloadResult.result||"Failed to generate Download Link");return downloadResult.result}async cancelBackupDownload(planId,backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice,backup.method),downloadResult=await strategy.cancelSnapshotDownload(planId,backupId);if(!downloadResult.success)throw new Error(downloadResult.result||"Failed to cancel Download");return await this.backupStore.update(backup.id,{download:null}),downloadResult.result}async cancelBackup(planId,backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getBackupStrategy(backupDevice),cancelResult=strategy.cancelBackup?await strategy.cancelBackup(planId,backupId):{success:!1,result:""};if(!cancelResult.success)throw new Error(cancelResult.result||"Failed to cancel backup");return"main"===backupDevice&&(jobQueue.remove("Backup",planId),jobQueue.remove("RescueBackup",planId)),await this.backupStore.update(backup.id,{status:"cancelled",inProgress:!1,ended:sql`(unixepoch())`}),cancelResult}async getBackupProgress(backupId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getBackupStrategy(backupDevice),progressResult=strategy.getBackupProgress?await strategy.getBackupProgress(backup.planId,backupId):{success:!1,result:""};if(!progressResult.success)throw new Error(progressResult.result||"Failed to get Backup Progress");return progressResult.result}async getSnapshotFiles(backupId,replicationId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const backupDevice=backup.sourceId?backup.sourceId:"main",backupMethod=backup.method;let effectiveStorageId=backup.storageId,effectiveStoragePath=backup.storagePath;if(replicationId){if(backup.mirrors&&backup.mirrors.length>0){if(!backup.mirrors.find(s=>s.replicationId===replicationId))throw new NotFoundError("Replication Storage not found in Plan settings")}const mirror=(backup.mirrors||[]).find(m=>m.replicationId===replicationId);mirror&&(effectiveStorageId=mirror.storageId,effectiveStoragePath=mirror.storagePath)}const storageName=await this.getStorageName(effectiveStorageId),strategy=this.getSnapshotStrategy(backupDevice,backupMethod),browseRes=await strategy.getSnapshotFiles(backup.planId,backup.id,{storagePath:effectiveStoragePath||"",storageName:storageName,encryption:backup.encryption||!1,skipCache:!!replicationId});if(!browseRes.success||!browseRes.result||"string"==typeof browseRes.result)throw new AppError(500,"string"==typeof browseRes.result?browseRes.result:"Browse snapshot failed");return browseRes.result}async updateBackup(backupId,data){if(!await this.backupStore.getById(backupId))throw new Error("Backup not found");const title=data.title?.trim()||"",description=data.description?.trim()||"";return await this.backupStore.update(backupId,{title:title,description:description})}async retryFailedReplications(backupId,replicationId){const backup=await this.backupStore.getById(backupId);if(!backup)throw new Error("Backup not found");const currentMirrors=backup.mirrors||[];if(0===currentMirrors.filter(m=>"failed"===m.status).length)throw new Error("No failed replications to retry");const updatedMirrors=replicationId?currentMirrors.map(m=>m.replicationId===replicationId?{...m,status:"pending",error:void 0}:m):currentMirrors.map(m=>"failed"===m.status?{...m,status:"pending",error:void 0}:m);await this.backupStore.update(backupId,{mirrors:updatedMirrors});const failedReplicationIds=updatedMirrors.filter(m=>"pending"===m.status).map(m=>m.replicationId),backupDevice=backup.sourceId?backup.sourceId:"main",strategy=this.getSnapshotStrategy(backupDevice),retryResult=await strategy.retryFailedReplication(backup.planId,backupId,failedReplicationIds);if(!retryResult.success)throw new Error(retryResult.result||"Failed to retry failed replications");return retryResult.result}async getStorageName(storageId){let storageName="";if("local"!==storageId)try{const storage=await this.storageStore.getById(storageId);storage?.name&&(storageName=storage.name)}catch(error){return storageName}else storageName="local";return storageName}}
@@ -1 +1 @@
1
- {"version":3,"file":"BackupServices.js","sourceRoot":"","sources":["../../src/services/BackupServices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackupServices.js","sourceRoot":"","sources":["../../src/services/BackupServices.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export declare class PlanService {
39
39
  /**
40
40
  * Triggers a one-off manual backup for a plan.
41
41
  */
42
- performBackup(planId: string): Promise<void>;
42
+ performBackup(planId: string): Promise<string>;
43
43
  /**
44
44
  * Triggers a manual prune for a plan.
45
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PlanService.d.ts","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanService.d.ts","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{createReadStream}from"fs";import{access,constants,readFile}from"fs/promises";import{planInsertSchema,planUpdateSchema}from"../db/schema/plans";import{planLogger}from"../utils/logger";import{generateUID}from"../utils/helpers";import{intervalToCron}from"../utils/intervalToCron";import{LocalStrategy as LocalBackupStrategy}from"../strategies/backup/LocalStrategy";import{RemoteStrategy as RemoteBackupStrategy}from"../strategies/backup/RemoteStrategy";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";import{sanitizeStoragePath}from"../utils/sanitizeStoragePath";import{BackupNotification}from"../notifications/BackupNotification";export class PlanService{localAgent;planStore;backupStore;storageStore;deviceStore;restoreStore;constructor(localAgent,planStore,backupStore,storageStore,deviceStore,restoreStore){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.storageStore=storageStore,this.deviceStore=deviceStore,this.restoreStore=restoreStore}getStrategy(plan){return"main"!==plan.sourceId?new RemoteBackupStrategy(plan.sourceId):new LocalBackupStrategy(this.localAgent)}async getPlan(planId,history=!0){const result=await this.planStore.getById(planId,history);if(!result)throw new NotFoundError("Plan not found");return result}async getAllPlans(history=!0){return await this.planStore.getAll(history)}async checkActiveBackupsOrRestore(planId,type){return"restore"===type?await this.planStore.hasActiveRestore(planId):await this.planStore.hasActiveBackups(planId)}async createPlan(planData){const planId=generateUID(),{title:title,description:description,storage:storage,storagePath:storagePath,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,method:method,settings:settings,tags:tags=[]}=planData,planStorage=await this.getStorageDetails(planData.storage.id);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const device=await this.deviceStore.getById(sourceId);if(!device)throw new NotFoundError("Source device not found");const targetOS="main"!==sourceId?device.os??void 0:void 0,theStoragePath=sanitizeStoragePath(storagePath,planStorage.type,targetOS);let newPlanData={id:planId,title:title.trim(),description:description?.trim()||"",storageId:storage.id,storagePath:theStoragePath,method:method,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,settings:settings,tags:tags};try{const parsedPlanData=planInsertSchema.parse(newPlanData);newPlanData={...parsedPlanData,sourceType:parsedPlanData.sourceType}}catch(error){throw error}const cronExpression=intervalToCron(planData.settings.interval),backupScheduleOptions={...newPlanData,isActive:!0,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(newPlanData),creationRes=await strategy.createBackup(planId,backupScheduleOptions);if(!creationRes.success)throw new AppError(500,creationRes.result)}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Error creating backup schedule")}const createdPlan=await this.planStore.create(newPlanData);if(!createdPlan)throw new AppError(500,"Failed to save the new plan to the database.");return planLogger("create",planId).info("Backup Plan created."),createdPlan}async updatePlan(planId,planData){const currentPlan=await this.planStore.getById(planId);if(!currentPlan)throw new NotFoundError("Plan not found.");let parsedPlanData;try{const parsedData=planUpdateSchema.parse(planData);parsedPlanData={...parsedData,sourceType:parsedData.sourceType||currentPlan.sourceType}}catch(error){throw error}const updatedPlan=await this.planStore.update(planId,parsedPlanData);if(!updatedPlan)throw new AppError(500,"Failed to update plan in the database.");const planStorage=await this.getStorageDetails(currentPlan.storageId);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const planSettings=parsedPlanData.settings||currentPlan.settings,cronExpression=intervalToCron(planSettings.interval),backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(updatedPlan),updateRes=await strategy.updateBackup(planId,backupScheduleOptions);if(!updateRes.success)throw"main"!==updatedPlan.sourceId&&await this.planStore.update(planId,currentPlan),new AppError(500,updateRes.result);return planLogger("update",planId).info("Backup Plan updated by User."),updatedPlan}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Failed to update plan")}}async deletePlan(planId,removeRemoteData){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const storageName=plan.storage?.name||"",replicationStorages=removeRemoteData?await this.resolveReplicationStorages(plan):[],options={storageName:"Local"===storageName||"Local Storage"===storageName?"local":storageName,storagePath:plan.storagePath||"",encryption:plan.settings.encryption||!0,removeRemoteData:removeRemoteData,replicationStorages:replicationStorages},strategy=this.getStrategy(plan),deleteResult=await strategy.removeBackup(planId,options);if(!deleteResult.success)throw new AppError(500,deleteResult.result);await this.restoreStore.deleteByPlanId(planId),await this.backupStore.deleteByPlanId(planId);const deleteRes=await this.planStore.delete(planId);if(!deleteRes)throw new AppError(500,"Failed to delete plan from the database.");return planLogger("delete",planId).info("Plan and associated data successfully deleted."),deleteRes}async performBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(await this.planStore.hasActiveBackups(planId))throw new AppError(500,"A backup is already in progress for this plan.");const strategy=this.getStrategy(plan),performResult=await strategy.performBackup(planId);if(!performResult.success)throw new AppError(500,performResult.result)}async pruneBackups(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan),pruneResult=await strategy.pruneBackups(planId,replicationStorages);if(!pruneResult.success)throw new AppError(500,"string"==typeof pruneResult.result?pruneResult.result:"Error Pruning Backup");return planLogger("prune",planId).info("Backup Plan prune successfully performed."),pruneResult.result}async pauseBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),pauseResult=await strategy.pauseBackup(planId);if(!pauseResult.success)throw new AppError(500,pauseResult.result);await this.planStore.setActive(planId,!1),planLogger("update",planId).info("Plan paused.")}async resumeBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),resumeResult=await strategy.resumeBackup(planId);if(!resumeResult.success)throw new AppError(500,resumeResult.result);await this.planStore.setActive(planId,!0),planLogger("update",planId).info("Plan resumed.")}async checkIntegrity(planId){try{const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found");try{const planID=plan.id,strategy=this.getStrategy(plan);return await strategy.checkIntegrity(planID)}catch(error){throw new AppError(500,error?.message||"Internal Server Error")}}catch(error){throw new AppError(500,error?.message||"Internal Server Error")}}async deleteReplicationStorage(planId,storageID,storagePath,removeData,replicationId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const replication=plan.settings?.replication;if(!replication?.storages?.length)throw new AppError(400,"Plan has no replication storages configured.");const storageIndex=replicationId?replication.storages.findIndex(s=>s.replicationId===replicationId):replication.storages.findIndex(s=>s.storageId===storageID&&s.storagePath===storagePath);if(-1===storageIndex)return{success:!0,message:"Replication storage removed successfully."};let storageName="Unknown";const storageRecords=await this.storageStore.getByIds([storageID]);if(storageRecords?.length){const name=storageRecords[0].name;storageName="Local"===name||"Local Storage"===name?"local":name}if(removeData){const strategy=this.getStrategy(plan),purgeResult=await strategy.removeReplicationStorage(planId,{storageName:storageName,storagePath:storagePath,removeData:removeData});if(!purgeResult.success)throw new AppError(500,`Failed to purge replication data: ${purgeResult.result}`)}const updatedStorages=replication.storages.filter((_,i)=>i!==storageIndex),updatedReplication={...replication,storages:updatedStorages,...0===updatedStorages.length&&{enabled:!1}},updatedSettings={...plan.settings,replication:updatedReplication};await this.planStore.update(planId,{settings:updatedSettings});try{const planStorage=await this.getStorageDetails(plan.storageId),cronExpression=intervalToCron(updatedSettings.interval),updatedPlan=await this.planStore.getById(planId);if(updatedPlan&&planStorage.name){const backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression},strategy=this.getStrategy(updatedPlan);await strategy.updateBackup(planId,backupScheduleOptions)}}catch(error){planLogger("replication",planId).warn(`Failed to sync CronManager schedule after removing replication storage: ${error?.message||"Unknown error"}`)}return planLogger("replication",planId).info(`Replication storage "${storageName}" (${storagePath}) removed from plan.${removeData?" Replicated data was purged.":""}`),{success:!0,message:`Replication storage "${storageName}" removed successfully.`}}async unlockRepo(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan);if(!strategy.unlockRepo)throw new AppError(501,'The "unlockRepo" feature is not implemented for this strategy.');const unlockResult=await strategy.unlockRepo(planId,replicationStorages);return unlockResult.success?planLogger("unlock",planId).info("Repository unlocked successfully by user request."):planLogger("unlock",planId).error(`Failed to unlock repository: ${unlockResult.result}`),unlockResult}async getPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(plan){const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError(`No logs found for plan with ID ${planId}`);return rawLogs.split(/\r?\n/).filter(line=>""!==line.trim()).map(line=>{try{const entry=JSON.parse(line);if(entry.time){const date=new Date(entry.time);entry.formattedTime=date.toLocaleString()}return entry}catch(e){return{raw:line}}})}catch(error){if("ENOENT"===error.code)throw new NotFoundError(`No logs found for plan with ID ${planId}`);throw error}}}async downloadPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{await access(logFilePath,constants.F_OK);return createReadStream(logFilePath)}catch(error){if("ENOENT"===error.code)throw new NotFoundError("Log file not found");throw new AppError(403,error?.message||"Failed to access the log file")}}async sendTestNotification(planId,notificationChannel,notificationCase,channelSettings){try{const theCase=notificationCase,plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const dummyStats={message_type:"summary",files_new:2,files_changed:3,files_unmodified:273,dirs_new:0,dirs_changed:0,dirs_unmodified:24,data_blobs:0,tree_blobs:0,data_added:0,data_added_packed:0,total_files_processed:273,total_bytes_processed:2896809876,total_duration:200,snapshot_id:"86dajhg985edioguo23782x",dry_run:!1},payload={id:"edioguo23782y",startTime:new Date,stats:dummyStats};"end"!==theCase&&"success"!==theCase&&"failure"!==theCase||(payload.endTime=new Date),"failure"===theCase&&(payload.error="An Unknown error caused the backup to fail.");const planNotifications=plan?.settings?.notification||{};if("slack"===notificationChannel)planNotifications.slack=channelSettings,await(new BackupNotification).sendSlack(plan,theCase,payload,theCase);else{if("discord"!==notificationChannel)throw new AppError(400,"Invalid notification channel specified.");planNotifications.discord=channelSettings,await(new BackupNotification).sendDiscord(plan,theCase,payload,theCase)}}catch(error){throw new AppError(401,`Test webhook request failed. Reason: ${error instanceof Error?error.message:"Unknown"}`)}}async getStorageDetails(storageId){const storage=await this.storageStore.getById(storageId);if(!storage)throw new NotFoundError("Storage not found");return{name:"local"===storage.id?"local":storage.name,type:storage.type,authType:storage.authType,settings:storage.settings,credentials:storage.credentials,defaultPath:storage.defaultPath}}async resolveReplicationStorages(plan){if(!plan.settings.replication?.enabled||!plan.settings.replication.storages?.length)return[];const storageIds=plan.settings.replication.storages.map(s=>s.storageId),storageRecords=await this.storageStore.getByIds(storageIds);return storageRecords?plan.settings.replication.storages.map(rs=>{const record=storageRecords.find(s=>s.id===rs.storageId),name=record?.name||"";return{storageName:"Local"===name||"Local Storage"===name?"local":name,storagePath:rs.storagePath}}).filter(s=>s.storageName&&s.storagePath):[]}}
1
+ import{createReadStream}from"fs";import{access,constants,readFile}from"fs/promises";import{planInsertSchema,planUpdateSchema}from"../db/schema/plans";import{planLogger}from"../utils/logger";import{generateUID}from"../utils/helpers";import{intervalToCron}from"../utils/intervalToCron";import{LocalStrategy as LocalBackupStrategy}from"../strategies/backup/LocalStrategy";import{RemoteStrategy as RemoteBackupStrategy}from"../strategies/backup/RemoteStrategy";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";import{sanitizeStoragePath}from"../utils/sanitizeStoragePath";import{BackupNotification}from"../notifications/BackupNotification";export class PlanService{localAgent;planStore;backupStore;storageStore;deviceStore;restoreStore;constructor(localAgent,planStore,backupStore,storageStore,deviceStore,restoreStore){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.storageStore=storageStore,this.deviceStore=deviceStore,this.restoreStore=restoreStore}getStrategy(plan){return"main"!==plan.sourceId?new RemoteBackupStrategy(plan.sourceId):new LocalBackupStrategy(this.localAgent)}async getPlan(planId,history=!0){const result=await this.planStore.getById(planId,history);if(!result)throw new NotFoundError("Plan not found");return result}async getAllPlans(history=!0){return await this.planStore.getAll(history)}async checkActiveBackupsOrRestore(planId,type){return"restore"===type?await this.planStore.hasActiveRestore(planId):await this.planStore.hasActiveBackups(planId)}async createPlan(planData){const planId=generateUID(),{title:title,description:description,storage:storage,storagePath:storagePath,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,method:method,settings:settings,tags:tags=[]}=planData,planStorage=await this.getStorageDetails(planData.storage.id);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const device=await this.deviceStore.getById(sourceId);if(!device)throw new NotFoundError("Source device not found");const targetOS="main"!==sourceId?device.os??void 0:void 0,theStoragePath=sanitizeStoragePath(storagePath,planStorage.type,targetOS);let newPlanData={id:planId,title:title.trim(),description:description?.trim()||"",storageId:storage.id,storagePath:theStoragePath,method:method,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,settings:settings,tags:tags};try{const parsedPlanData=planInsertSchema.parse(newPlanData);newPlanData={...parsedPlanData,sourceType:parsedPlanData.sourceType}}catch(error){throw error}const cronExpression=intervalToCron(planData.settings.interval),backupScheduleOptions={...newPlanData,isActive:!0,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(newPlanData),creationRes=await strategy.createBackup(planId,backupScheduleOptions);if(!creationRes.success)throw new AppError(500,creationRes.result)}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Error creating backup schedule")}const createdPlan=await this.planStore.create(newPlanData);if(!createdPlan)throw new AppError(500,"Failed to save the new plan to the database.");return planLogger("create",planId).info("Backup Plan created."),createdPlan}async updatePlan(planId,planData){const currentPlan=await this.planStore.getById(planId);if(!currentPlan)throw new NotFoundError("Plan not found.");let parsedPlanData;try{const parsedData=planUpdateSchema.parse(planData);parsedPlanData={...parsedData,sourceType:parsedData.sourceType||currentPlan.sourceType}}catch(error){throw error}const updatedPlan=await this.planStore.update(planId,parsedPlanData);if(!updatedPlan)throw new AppError(500,"Failed to update plan in the database.");const planStorage=await this.getStorageDetails(currentPlan.storageId);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const planSettings=parsedPlanData.settings||currentPlan.settings,cronExpression=intervalToCron(planSettings.interval),backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(updatedPlan),updateRes=await strategy.updateBackup(planId,backupScheduleOptions);if(!updateRes.success)throw"main"!==updatedPlan.sourceId&&await this.planStore.update(planId,currentPlan),new AppError(500,updateRes.result);return planLogger("update",planId).info("Backup Plan updated by User."),updatedPlan}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Failed to update plan")}}async deletePlan(planId,removeRemoteData){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const storageName=plan.storage?.name||"",replicationStorages=removeRemoteData?await this.resolveReplicationStorages(plan):[],options={storageName:"Local"===storageName||"Local Storage"===storageName?"local":storageName,storagePath:plan.storagePath||"",encryption:plan.settings.encryption||!0,removeRemoteData:removeRemoteData,replicationStorages:replicationStorages},strategy=this.getStrategy(plan),deleteResult=await strategy.removeBackup(planId,options);if(!deleteResult.success)throw new AppError(500,deleteResult.result);await this.restoreStore.deleteByPlanId(planId),await this.backupStore.deleteByPlanId(planId);const deleteRes=await this.planStore.delete(planId);if(!deleteRes)throw new AppError(500,"Failed to delete plan from the database.");return planLogger("delete",planId).info("Plan and associated data successfully deleted."),deleteRes}async performBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(await this.planStore.hasActiveBackups(planId))throw new AppError(500,"A backup is already in progress for this plan.");const strategy=this.getStrategy(plan),performResult=await strategy.performBackup(planId);if(performResult.success)return performResult.result;throw new AppError(500,performResult.result)}async pruneBackups(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan),pruneResult=await strategy.pruneBackups(planId,replicationStorages);if(!pruneResult.success)throw new AppError(500,"string"==typeof pruneResult.result?pruneResult.result:"Error Pruning Backup");return planLogger("prune",planId).info("Backup Plan prune successfully performed."),pruneResult.result}async pauseBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),pauseResult=await strategy.pauseBackup(planId);if(!pauseResult.success)throw new AppError(500,pauseResult.result);await this.planStore.setActive(planId,!1),planLogger("update",planId).info("Plan paused.")}async resumeBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),resumeResult=await strategy.resumeBackup(planId);if(!resumeResult.success)throw new AppError(500,resumeResult.result);await this.planStore.setActive(planId,!0),planLogger("update",planId).info("Plan resumed.")}async checkIntegrity(planId){try{const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found");try{const planID=plan.id,strategy=this.getStrategy(plan);return await strategy.checkIntegrity(planID)}catch(error){throw new AppError(500,error?.message||"Internal Server Error")}}catch(error){throw new AppError(500,error?.message||"Internal Server Error")}}async deleteReplicationStorage(planId,storageID,storagePath,removeData,replicationId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const replication=plan.settings?.replication;if(!replication?.storages?.length)throw new AppError(400,"Plan has no replication storages configured.");const storageIndex=replicationId?replication.storages.findIndex(s=>s.replicationId===replicationId):replication.storages.findIndex(s=>s.storageId===storageID&&s.storagePath===storagePath);if(-1===storageIndex)return{success:!0,message:"Replication storage removed successfully."};let storageName="Unknown";const storageRecords=await this.storageStore.getByIds([storageID]);if(storageRecords?.length){const name=storageRecords[0].name;storageName="Local"===name||"Local Storage"===name?"local":name}if(removeData){const strategy=this.getStrategy(plan),purgeResult=await strategy.removeReplicationStorage(planId,{storageName:storageName,storagePath:storagePath,removeData:removeData});if(!purgeResult.success)throw new AppError(500,`Failed to purge replication data: ${purgeResult.result}`)}const updatedStorages=replication.storages.filter((_,i)=>i!==storageIndex),updatedReplication={...replication,storages:updatedStorages,...0===updatedStorages.length&&{enabled:!1}},updatedSettings={...plan.settings,replication:updatedReplication};await this.planStore.update(planId,{settings:updatedSettings});try{const planStorage=await this.getStorageDetails(plan.storageId),cronExpression=intervalToCron(updatedSettings.interval),updatedPlan=await this.planStore.getById(planId);if(updatedPlan&&planStorage.name){const backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression},strategy=this.getStrategy(updatedPlan);await strategy.updateBackup(planId,backupScheduleOptions)}}catch(error){planLogger("replication",planId).warn(`Failed to sync CronManager schedule after removing replication storage: ${error?.message||"Unknown error"}`)}return planLogger("replication",planId).info(`Replication storage "${storageName}" (${storagePath}) removed from plan.${removeData?" Replicated data was purged.":""}`),{success:!0,message:`Replication storage "${storageName}" removed successfully.`}}async unlockRepo(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan);if(!strategy.unlockRepo)throw new AppError(501,'The "unlockRepo" feature is not implemented for this strategy.');const unlockResult=await strategy.unlockRepo(planId,replicationStorages);return unlockResult.success?planLogger("unlock",planId).info("Repository unlocked successfully by user request."):planLogger("unlock",planId).error(`Failed to unlock repository: ${unlockResult.result}`),unlockResult}async getPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(plan){const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError(`No logs found for plan with ID ${planId}`);return rawLogs.split(/\r?\n/).filter(line=>""!==line.trim()).map(line=>{try{const entry=JSON.parse(line);if(entry.time){const date=new Date(entry.time);entry.formattedTime=date.toLocaleString()}return entry}catch(e){return{raw:line}}})}catch(error){if("ENOENT"===error.code)throw new NotFoundError(`No logs found for plan with ID ${planId}`);throw error}}}async downloadPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{await access(logFilePath,constants.F_OK);return createReadStream(logFilePath)}catch(error){if("ENOENT"===error.code)throw new NotFoundError("Log file not found");throw new AppError(403,error?.message||"Failed to access the log file")}}async sendTestNotification(planId,notificationChannel,notificationCase,channelSettings){try{const theCase=notificationCase,plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const dummyStats={message_type:"summary",files_new:2,files_changed:3,files_unmodified:273,dirs_new:0,dirs_changed:0,dirs_unmodified:24,data_blobs:0,tree_blobs:0,data_added:0,data_added_packed:0,total_files_processed:273,total_bytes_processed:2896809876,total_duration:200,snapshot_id:"86dajhg985edioguo23782x",dry_run:!1},payload={id:"edioguo23782y",startTime:new Date,stats:dummyStats};"end"!==theCase&&"success"!==theCase&&"failure"!==theCase||(payload.endTime=new Date),"failure"===theCase&&(payload.error="An Unknown error caused the backup to fail.");const planNotifications=plan?.settings?.notification||{};if("slack"===notificationChannel)planNotifications.slack=channelSettings,await(new BackupNotification).sendSlack(plan,theCase,payload,theCase);else{if("discord"!==notificationChannel)throw new AppError(400,"Invalid notification channel specified.");planNotifications.discord=channelSettings,await(new BackupNotification).sendDiscord(plan,theCase,payload,theCase)}}catch(error){throw new AppError(401,`Test webhook request failed. Reason: ${error instanceof Error?error.message:"Unknown"}`)}}async getStorageDetails(storageId){const storage=await this.storageStore.getById(storageId);if(!storage)throw new NotFoundError("Storage not found");return{name:"local"===storage.id?"local":storage.name,type:storage.type,authType:storage.authType,settings:storage.settings,credentials:storage.credentials,defaultPath:storage.defaultPath}}async resolveReplicationStorages(plan){if(!plan.settings.replication?.enabled||!plan.settings.replication.storages?.length)return[];const storageIds=plan.settings.replication.storages.map(s=>s.storageId),storageRecords=await this.storageStore.getByIds(storageIds);return storageRecords?plan.settings.replication.storages.map(rs=>{const record=storageRecords.find(s=>s.id===rs.storageId),name=record?.name||"";return{storageName:"Local"===name||"Local Storage"===name?"local":name,storagePath:rs.storagePath}}).filter(s=>s.storageName&&s.storagePath):[]}}