@plutonhq/core-backend 0.1.13 → 0.1.15

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 (179) hide show
  1. package/dist/controllers/BackupController.d.ts +1 -0
  2. package/dist/controllers/BackupController.d.ts.map +1 -1
  3. package/dist/controllers/BackupController.js +1 -1
  4. package/dist/controllers/BackupController.js.map +1 -1
  5. package/dist/controllers/PlanController.d.ts +1 -0
  6. package/dist/controllers/PlanController.d.ts.map +1 -1
  7. package/dist/controllers/PlanController.js +1 -1
  8. package/dist/controllers/PlanController.js.map +1 -1
  9. package/dist/controllers/RestoreController.d.ts.map +1 -1
  10. package/dist/controllers/RestoreController.js +1 -1
  11. package/dist/controllers/RestoreController.js.map +1 -1
  12. package/dist/controllers/StorageController.d.ts.map +1 -1
  13. package/dist/controllers/StorageController.js +1 -1
  14. package/dist/controllers/StorageController.js.map +1 -1
  15. package/dist/createApp.d.ts.map +1 -1
  16. package/dist/createApp.js +1 -1
  17. package/dist/createApp.js.map +1 -1
  18. package/dist/db/index.d.ts +19 -0
  19. package/dist/db/index.d.ts.map +1 -1
  20. package/dist/db/schema/backups.d.ts +77 -1
  21. package/dist/db/schema/backups.d.ts.map +1 -1
  22. package/dist/db/schema/backups.js +1 -1
  23. package/dist/db/schema/backups.js.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/jobs/JobProcessor.d.ts.map +1 -1
  27. package/dist/jobs/JobProcessor.js +1 -1
  28. package/dist/jobs/JobProcessor.js.map +1 -1
  29. package/dist/jobs/tasks/ReplicationRetryTask.d.ts +10 -0
  30. package/dist/jobs/tasks/ReplicationRetryTask.d.ts.map +1 -0
  31. package/dist/jobs/tasks/ReplicationRetryTask.js +1 -0
  32. package/dist/jobs/tasks/ReplicationRetryTask.js.map +1 -0
  33. package/dist/managers/BaseBackupManager.d.ts +31 -2
  34. package/dist/managers/BaseBackupManager.d.ts.map +1 -1
  35. package/dist/managers/BaseBackupManager.js +1 -1
  36. package/dist/managers/BaseBackupManager.js.map +1 -1
  37. package/dist/managers/BaseSnapshotManager.d.ts +21 -4
  38. package/dist/managers/BaseSnapshotManager.d.ts.map +1 -1
  39. package/dist/managers/BaseSnapshotManager.js +1 -1
  40. package/dist/managers/BaseSnapshotManager.js.map +1 -1
  41. package/dist/managers/ProgressManager.d.ts +28 -0
  42. package/dist/managers/ProgressManager.d.ts.map +1 -1
  43. package/dist/managers/ProgressManager.js +1 -1
  44. package/dist/managers/ProgressManager.js.map +1 -1
  45. package/dist/managers/handlers/BackupHandler.d.ts +8 -0
  46. package/dist/managers/handlers/BackupHandler.d.ts.map +1 -1
  47. package/dist/managers/handlers/BackupHandler.js +1 -1
  48. package/dist/managers/handlers/BackupHandler.js.map +1 -1
  49. package/dist/managers/handlers/DownloadHandler.d.ts.map +1 -1
  50. package/dist/managers/handlers/DownloadHandler.js +1 -1
  51. package/dist/managers/handlers/DownloadHandler.js.map +1 -1
  52. package/dist/managers/handlers/ReplicationHandler.d.ts +34 -0
  53. package/dist/managers/handlers/ReplicationHandler.d.ts.map +1 -0
  54. package/dist/managers/handlers/ReplicationHandler.js +1 -0
  55. package/dist/managers/handlers/ReplicationHandler.js.map +1 -0
  56. package/dist/managers/handlers/ReplicationOrchestrator.d.ts +50 -0
  57. package/dist/managers/handlers/ReplicationOrchestrator.d.ts.map +1 -0
  58. package/dist/managers/handlers/ReplicationOrchestrator.js +1 -0
  59. package/dist/managers/handlers/ReplicationOrchestrator.js.map +1 -0
  60. package/dist/middlewares/versionMiddleware.d.ts.map +1 -1
  61. package/dist/middlewares/versionMiddleware.js +1 -1
  62. package/dist/middlewares/versionMiddleware.js.map +1 -1
  63. package/dist/notifications/BackupNotification.d.ts +6 -3
  64. package/dist/notifications/BackupNotification.d.ts.map +1 -1
  65. package/dist/notifications/BackupNotification.js +1 -1
  66. package/dist/notifications/BackupNotification.js.map +1 -1
  67. package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -1
  68. package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -1
  69. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -1
  70. package/dist/notifications/templates/email/backup/BackupFailedNotification.ejs +9 -4
  71. package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -1
  72. package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -1
  73. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -1
  74. package/dist/notifications/templates/email/backup/BackupStartedNotification.ejs +9 -4
  75. package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -1
  76. package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -1
  77. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts +2 -1
  78. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -1
  79. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ejs +52 -4
  80. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -1
  81. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -1
  82. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.d.ts +24 -0
  83. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.d.ts.map +1 -0
  84. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.ejs +105 -0
  85. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.js +1 -0
  86. package/dist/notifications/templates/email/backup/ReplicationFailedNotification.js.map +1 -0
  87. package/dist/routes/backups.d.ts.map +1 -1
  88. package/dist/routes/backups.js +1 -1
  89. package/dist/routes/backups.js.map +1 -1
  90. package/dist/routes/plans.d.ts.map +1 -1
  91. package/dist/routes/plans.js +1 -1
  92. package/dist/routes/plans.js.map +1 -1
  93. package/dist/services/BackupServices.d.ts +14 -5
  94. package/dist/services/BackupServices.d.ts.map +1 -1
  95. package/dist/services/BackupServices.js +1 -1
  96. package/dist/services/BackupServices.js.map +1 -1
  97. package/dist/services/DeviceService.d.ts +6 -0
  98. package/dist/services/DeviceService.d.ts.map +1 -1
  99. package/dist/services/DeviceService.js +1 -1
  100. package/dist/services/DeviceService.js.map +1 -1
  101. package/dist/services/PlanService.d.ts +12 -0
  102. package/dist/services/PlanService.d.ts.map +1 -1
  103. package/dist/services/PlanService.js +1 -1
  104. package/dist/services/PlanService.js.map +1 -1
  105. package/dist/services/RestoreService.d.ts +2 -2
  106. package/dist/services/RestoreService.d.ts.map +1 -1
  107. package/dist/services/RestoreService.js +1 -1
  108. package/dist/services/RestoreService.js.map +1 -1
  109. package/dist/services/StorageService.d.ts.map +1 -1
  110. package/dist/services/StorageService.js +1 -1
  111. package/dist/services/StorageService.js.map +1 -1
  112. package/dist/services/events/BackupEventService.d.ts +11 -0
  113. package/dist/services/events/BackupEventService.d.ts.map +1 -1
  114. package/dist/services/events/BackupEventService.js +1 -1
  115. package/dist/services/events/BackupEventService.js.map +1 -1
  116. package/dist/services/events/ReplicationEventService.d.ts +33 -0
  117. package/dist/services/events/ReplicationEventService.d.ts.map +1 -0
  118. package/dist/services/events/ReplicationEventService.js +1 -0
  119. package/dist/services/events/ReplicationEventService.js.map +1 -0
  120. package/dist/services/listeners/BackupEventListener.d.ts +3 -1
  121. package/dist/services/listeners/BackupEventListener.d.ts.map +1 -1
  122. package/dist/services/listeners/BackupEventListener.js +1 -1
  123. package/dist/services/listeners/BackupEventListener.js.map +1 -1
  124. package/dist/services/listeners/ReplicationEventListener.d.ts +30 -0
  125. package/dist/services/listeners/ReplicationEventListener.d.ts.map +1 -0
  126. package/dist/services/listeners/ReplicationEventListener.js +1 -0
  127. package/dist/services/listeners/ReplicationEventListener.js.map +1 -0
  128. package/dist/stores/BackupStore.d.ts +8 -0
  129. package/dist/stores/BackupStore.d.ts.map +1 -1
  130. package/dist/stores/BackupStore.js +1 -1
  131. package/dist/stores/BackupStore.js.map +1 -1
  132. package/dist/stores/DeviceStore.d.ts +6 -0
  133. package/dist/stores/DeviceStore.d.ts.map +1 -1
  134. package/dist/stores/DeviceStore.js +1 -1
  135. package/dist/stores/DeviceStore.js.map +1 -1
  136. package/dist/stores/PlanStore.d.ts +3 -1
  137. package/dist/stores/PlanStore.d.ts.map +1 -1
  138. package/dist/stores/PlanStore.js +1 -1
  139. package/dist/stores/PlanStore.js.map +1 -1
  140. package/dist/stores/StorageStore.d.ts +10 -0
  141. package/dist/stores/StorageStore.d.ts.map +1 -1
  142. package/dist/stores/StorageStore.js +1 -1
  143. package/dist/stores/StorageStore.js.map +1 -1
  144. package/dist/strategies/backup/BackupStrategy.d.ts +20 -2
  145. package/dist/strategies/backup/BackupStrategy.d.ts.map +1 -1
  146. package/dist/strategies/backup/LocalStrategy.d.ts +20 -2
  147. package/dist/strategies/backup/LocalStrategy.d.ts.map +1 -1
  148. package/dist/strategies/backup/LocalStrategy.js +1 -1
  149. package/dist/strategies/backup/LocalStrategy.js.map +1 -1
  150. package/dist/strategies/backup/RemoteStrategy.d.ts +9 -2
  151. package/dist/strategies/backup/RemoteStrategy.d.ts.map +1 -1
  152. package/dist/strategies/backup/RemoteStrategy.js +1 -1
  153. package/dist/strategies/backup/RemoteStrategy.js.map +1 -1
  154. package/dist/strategies/snapshot/LocalStrategy.d.ts +20 -4
  155. package/dist/strategies/snapshot/LocalStrategy.d.ts.map +1 -1
  156. package/dist/strategies/snapshot/LocalStrategy.js +1 -1
  157. package/dist/strategies/snapshot/LocalStrategy.js.map +1 -1
  158. package/dist/strategies/snapshot/RemoteStrategy.d.ts +4 -1
  159. package/dist/strategies/snapshot/RemoteStrategy.d.ts.map +1 -1
  160. package/dist/strategies/snapshot/RemoteStrategy.js +1 -1
  161. package/dist/strategies/snapshot/RemoteStrategy.js.map +1 -1
  162. package/dist/strategies/snapshot/SnapshotStrategy.d.ts +20 -4
  163. package/dist/strategies/snapshot/SnapshotStrategy.d.ts.map +1 -1
  164. package/dist/types/backups.d.ts +24 -0
  165. package/dist/types/backups.d.ts.map +1 -1
  166. package/dist/types/events.d.ts +110 -0
  167. package/dist/types/events.d.ts.map +1 -1
  168. package/dist/types/plans.d.ts +23 -2
  169. package/dist/types/plans.d.ts.map +1 -1
  170. package/dist/types/restores.d.ts +2 -0
  171. package/dist/types/restores.d.ts.map +1 -1
  172. package/dist/utils/restic/restic.d.ts.map +1 -1
  173. package/dist/utils/restic/restic.js +1 -1
  174. package/dist/utils/restic/restic.js.map +1 -1
  175. package/dist/utils/sanitizeStoragePath.d.ts +5 -1
  176. package/dist/utils/sanitizeStoragePath.d.ts.map +1 -1
  177. package/dist/utils/sanitizeStoragePath.js +1 -1
  178. package/dist/utils/sanitizeStoragePath.js.map +1 -1
  179. package/package.json +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,sGAAsG;AACtG,mDAAmD;AACnD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAK,OAAe,CAAC,GAAG,CAAC;AAC7F,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAE7D,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;IACnC,CAAC,KAAK,IAAI,EAAE;QACX,8EAA8E;QAC9E,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YACzE,MAAM,mBAAmB,EAAE,CAAC;YAC5B,OAAO,CAAC,6DAA6D;QACtE,CAAC;QAED,kFAAkF;QAClF,IAAI,oBAAoB,EAAE,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,kCAAkC,EAAE,CAAC;YACxE,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,gBAAgB,GACrB,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM;oBAC/B,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;gBAEzD,4BAA4B;gBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;gBACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,2CAA2C;gBAC3C,IACC,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,cAAc;oBACrC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChD,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBAC1E,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;YACF,CAAC;QACF,CAAC;QAED,kDAAkD;QAClD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;YACrC,MAAM,SAAS,CAAC,EAAsC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,GAAG,EAAE;YACxE,OAAO,CAAC,GAAG,CAAC,iCAAiC,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;YACzF,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CACV,6DAA6D,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,qBAAqB,CAC1H,CAAC;YACH,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;YAEhC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBACjB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,EAAE,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JobProcessor.d.ts","sourceRoot":"","sources":["../../src/jobs/JobProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,UAAU,gBAAgB;IACzB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAM,YAAa,SAAQ,YAAY;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,KAAK,CAAgC;IAG7C,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO;WAIO,WAAW,IAAI,YAAY;IAOzC;;;;OAIG;IACI,aAAa,CAAC,YAAY,EAAE,gBAAgB;IAiBnD;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAUhC;;;OAGG;IACI,KAAK,CAAC,QAAQ,SAAO,GAAG,IAAI;IAanC;;OAEG;IACI,IAAI,IAAI,IAAI;IAQnB;;;OAGG;YACW,YAAY;CAiG1B;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC"}
1
+ {"version":3,"file":"JobProcessor.d.ts","sourceRoot":"","sources":["../../src/jobs/JobProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,UAAU,gBAAgB;IACzB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAM,YAAa,SAAQ,YAAY;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,KAAK,CAAgC;IAG7C,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO;WAIO,WAAW,IAAI,YAAY;IAOzC;;;;OAIG;IACI,aAAa,CAAC,YAAY,EAAE,gBAAgB;IAkBnD;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAUhC;;;OAGG;IACI,KAAK,CAAC,QAAQ,SAAO,GAAG,IAAI;IAanC;;OAEG;IACI,IAAI,IAAI,IAAI;IAQnB;;;OAGG;YACW,YAAY;CAiG1B;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC"}
@@ -1 +1 @@
1
- import{EventEmitter}from"events";import{jobQueue}from"./JobQueue";import{logger}from"../utils/logger";import{CleanDownloadsTask}from"./tasks/CleanDownloadsTask";import{BackupTask}from"./tasks/BackupTask";import{configService}from"../services/ConfigService";import{RestoreTask}from"./tasks/RestoreTask";class JobProcessor extends EventEmitter{static instance;isRunning=!1;intervalId=null;tasks=new Map;activeBackupJobs=0;constructor(){super()}static getInstance(){return JobProcessor.instance||(JobProcessor.instance=new JobProcessor),JobProcessor.instance}registerTasks(dependencies){const tasksToRegister=[new CleanDownloadsTask];dependencies.backupManager&&tasksToRegister.push(new BackupTask(dependencies.backupManager)),dependencies.restoreManager&&tasksToRegister.push(new RestoreTask(dependencies.restoreManager));for(const task of tasksToRegister)this.tasks.set(task.name,task)}addTask(task){this.tasks.has(task.name)&&logger.warn({module:"JobProcessor",task:task.name},"A task with this name is already registered. It will be overwritten."),this.tasks.set(task.name,task)}start(interval=5e3){this.intervalId?logger.warn({module:"JobProcessor"},"Job processor is already running."):0!==this.tasks.size?(logger.info({module:"JobProcessor"},"Starting job processor."),this.intervalId=setInterval(()=>this.processQueue(),interval)):logger.warn({module:"JobProcessor"},"No tasks registered. Job processor will not start.")}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,logger.info({module:"JobProcessor"},"Stopped job processor."))}async processQueue(){if(this.isRunning)return;const job=jobQueue.getNext();if(!job)return;if("Backup"===job.name&&this.activeBackupJobs>=configService.config.MAX_CONCURRENT_BACKUPS)return void jobQueue.requeueAtFront(job);const now=Date.now();if(job.lastAttempt&&now-job.lastAttempt<job.retryDelay){const timeLeft=Math.round((job.retryDelay-(now-job.lastAttempt))/1e3);return logger.info({module:"JobProcessor"},`Delaying retry for job '${job.name}'. Next attempt in ~${timeLeft}s.`),void jobQueue.reQueue(job)}this.isRunning=!0,"Backup"===job.name&&this.activeBackupJobs++,logger.info({module:"JobProcessor"},`Processing job: ${job.name}. Active backups: ${this.activeBackupJobs}`);const task=this.tasks.get(job.name);if(!task)return logger.error({module:"JobProcessor"},`No task registered for job name: ${job.name}`),jobQueue.failJob(job),this.isRunning=!1,void("Backup"===job.name&&this.activeBackupJobs--);try{await task.run(job),jobQueue.completeJob()}catch(error){const errorMessage=error instanceof Error?error.message:String(error);if(errorMessage.startsWith("BACKUP_CANCELLED:")||errorMessage.startsWith("RESTORE_CANCELLED:"))return logger.info({module:"JobProcessor",job:job.name},"Job was cancelled by user"),void jobQueue.completeJob();logger.error({module:"JobProcessor",job:job.name,error:error.message},`Job failed during execution. Attempt ${job.attempts+1} of ${job.maxAttempts}.`);jobQueue.failJob(job)&&(logger.error({module:"JobProcessor",job:job.name},`Job has permanently failed after ${job.maxAttempts} attempts.`),this.emit(`${job.name.toLowerCase()}_failed`,{...job.payload,error:error.message||"Unknown error after multiple retries."}))}finally{this.isRunning=!1,"Backup"===job.name&&this.activeBackupJobs--}}}export const jobProcessor=JobProcessor.getInstance();
1
+ import{EventEmitter}from"events";import{jobQueue}from"./JobQueue";import{logger}from"../utils/logger";import{CleanDownloadsTask}from"./tasks/CleanDownloadsTask";import{BackupTask}from"./tasks/BackupTask";import{configService}from"../services/ConfigService";import{RestoreTask}from"./tasks/RestoreTask";import{ReplicationRetryTask}from"./tasks/ReplicationRetryTask";class JobProcessor extends EventEmitter{static instance;isRunning=!1;intervalId=null;tasks=new Map;activeBackupJobs=0;constructor(){super()}static getInstance(){return JobProcessor.instance||(JobProcessor.instance=new JobProcessor),JobProcessor.instance}registerTasks(dependencies){const tasksToRegister=[new CleanDownloadsTask];dependencies.backupManager&&(tasksToRegister.push(new BackupTask(dependencies.backupManager)),tasksToRegister.push(new ReplicationRetryTask(dependencies.backupManager))),dependencies.restoreManager&&tasksToRegister.push(new RestoreTask(dependencies.restoreManager));for(const task of tasksToRegister)this.tasks.set(task.name,task)}addTask(task){this.tasks.has(task.name)&&logger.warn({module:"JobProcessor",task:task.name},"A task with this name is already registered. It will be overwritten."),this.tasks.set(task.name,task)}start(interval=5e3){this.intervalId?logger.warn({module:"JobProcessor"},"Job processor is already running."):0!==this.tasks.size?(logger.info({module:"JobProcessor"},"Starting job processor."),this.intervalId=setInterval(()=>this.processQueue(),interval)):logger.warn({module:"JobProcessor"},"No tasks registered. Job processor will not start.")}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,logger.info({module:"JobProcessor"},"Stopped job processor."))}async processQueue(){if(this.isRunning)return;const job=jobQueue.getNext();if(!job)return;if("Backup"===job.name&&this.activeBackupJobs>=configService.config.MAX_CONCURRENT_BACKUPS)return void jobQueue.requeueAtFront(job);const now=Date.now();if(job.lastAttempt&&now-job.lastAttempt<job.retryDelay){const timeLeft=Math.round((job.retryDelay-(now-job.lastAttempt))/1e3);return logger.info({module:"JobProcessor"},`Delaying retry for job '${job.name}'. Next attempt in ~${timeLeft}s.`),void jobQueue.reQueue(job)}this.isRunning=!0,"Backup"===job.name&&this.activeBackupJobs++,logger.info({module:"JobProcessor"},`Processing job: ${job.name}. Active backups: ${this.activeBackupJobs}`);const task=this.tasks.get(job.name);if(!task)return logger.error({module:"JobProcessor"},`No task registered for job name: ${job.name}`),jobQueue.failJob(job),this.isRunning=!1,void("Backup"===job.name&&this.activeBackupJobs--);try{await task.run(job),jobQueue.completeJob()}catch(error){const errorMessage=error instanceof Error?error.message:String(error);if(errorMessage.startsWith("BACKUP_CANCELLED:")||errorMessage.startsWith("RESTORE_CANCELLED:"))return logger.info({module:"JobProcessor",job:job.name},"Job was cancelled by user"),void jobQueue.completeJob();logger.error({module:"JobProcessor",job:job.name,error:error.message},`Job failed during execution. Attempt ${job.attempts+1} of ${job.maxAttempts}.`);jobQueue.failJob(job)&&(logger.error({module:"JobProcessor",job:job.name},`Job has permanently failed after ${job.maxAttempts} attempts.`),this.emit(`${job.name.toLowerCase()}_failed`,{...job.payload,error:error.message||"Unknown error after multiple retries."}))}finally{this.isRunning=!1,"Backup"===job.name&&this.activeBackupJobs--}}}export const jobProcessor=JobProcessor.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"JobProcessor.js","sourceRoot":"","sources":["../../src/jobs/JobProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JobProcessor.js","sourceRoot":"","sources":["../../src/jobs/JobProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Task } from './AbstractTask';
2
+ import { BaseBackupManager } from '../../managers/BaseBackupManager';
3
+ import { Job } from '../JobQueue';
4
+ export declare class ReplicationRetryTask extends Task {
5
+ private backupManager;
6
+ name: string;
7
+ constructor(backupManager: BaseBackupManager);
8
+ run(job: Job): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=ReplicationRetryTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplicationRetryTask.d.ts","sourceRoot":"","sources":["../../../src/jobs/tasks/ReplicationRetryTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,qBAAa,oBAAqB,SAAQ,IAAI;IAGjC,OAAO,CAAC,aAAa;IAFjC,IAAI,SAAsB;gBAEN,aAAa,EAAE,iBAAiB;IAI9C,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBlC"}
@@ -0,0 +1 @@
1
+ import{Task}from"./AbstractTask";import{logger,planLogger}from"../../utils/logger";export class ReplicationRetryTask extends Task{backupManager;name="ReplicationRetry";constructor(backupManager){super(),this.backupManager=backupManager}async run(job){if(!job.payload||!job.payload?.planId||!job.payload?.backupId)throw logger.error("ReplicationRetryTask failed: planId or backupId is missing from the payload."),new Error("Missing planId or backupId in job payload");const{planId:planId,backupId:backupId,failedReplicationIds:failedReplicationIds}=job.payload;logger.info(`Starting replication retry job for plan: ${planId}, backup: ${backupId}`);try{await this.backupManager.retryFailedReplications(planId,backupId,failedReplicationIds),planLogger("replication",planId,backupId).info(`Replication retry job for plan ${planId} completed successfully.`)}catch(error){throw planLogger("replication",planId,backupId).error(`Replication retry job for plan ${planId} failed. Error: ${error.message}`),error}}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplicationRetryTask.js","sourceRoot":"","sources":["../../../src/jobs/tasks/ReplicationRetryTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,OAAO,oBAAqB,SAAQ,IAAI;IAGzB;IAFpB,IAAI,GAAG,kBAAkB,CAAC;IAE1B,YAAoB,aAAgC;QACnD,KAAK,EAAE,CAAC;QADW,kBAAa,GAAb,aAAa,CAAmB;IAEpD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAQ;QACjB,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,4CAA4C,MAAM,aAAa,QAAQ,EAAE,CAAC,CAAC;QAEvF,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAEzF,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC/C,kCAAkC,MAAM,0BAA0B,CAClE,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAChD,kCAAkC,MAAM,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAC1E,CAAC;YACF,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;CACD"}
@@ -38,6 +38,10 @@ export declare class BaseBackupManager extends EventEmitter {
38
38
  storagePath: string;
39
39
  removeRemoteData: boolean;
40
40
  encryption: boolean;
41
+ replicationStorages?: {
42
+ storageName: string;
43
+ storagePath: string;
44
+ }[];
41
45
  }): Promise<{
42
46
  success: boolean;
43
47
  result: string;
@@ -61,6 +65,25 @@ export declare class BaseBackupManager extends EventEmitter {
61
65
  success: boolean;
62
66
  result: string;
63
67
  }>;
68
+ /**
69
+ * Retries failed replication operations for a specific backup.
70
+ * Directly calls BackupHandler to run replications synchronously (awaited).
71
+ */
72
+ retryFailedReplications(planId: string, backupId: string, failedReplicationIds: string[]): Promise<{
73
+ success: boolean;
74
+ result: string;
75
+ }>;
76
+ /**
77
+ * Removes a single replication storage's data from the remote storage via rclone purge.
78
+ */
79
+ removeReplicationStorage(planId: string, options: {
80
+ storageName: string;
81
+ storagePath: string;
82
+ removeData: boolean;
83
+ }): Promise<{
84
+ success: boolean;
85
+ result: string;
86
+ }>;
64
87
  pauseBackup(planId: string): Promise<{
65
88
  success: boolean;
66
89
  result: string;
@@ -69,7 +92,10 @@ export declare class BaseBackupManager extends EventEmitter {
69
92
  success: boolean;
70
93
  result: string;
71
94
  }>;
72
- pruneBackups(planId: string): Promise<{
95
+ pruneBackups(planId: string, replicationStorages?: {
96
+ storageName: string;
97
+ storagePath: string;
98
+ }[]): Promise<{
73
99
  success: boolean;
74
100
  result: string;
75
101
  }>;
@@ -78,7 +104,10 @@ export declare class BaseBackupManager extends EventEmitter {
78
104
  * @param planId - The ID of the plan for which to unlock the repository.
79
105
  * @returns A promise that resolves to an object indicating success and the result message.
80
106
  */
81
- unlockRepo(planId: string): Promise<{
107
+ unlockRepo(planId: string, replicationStorages?: {
108
+ storageName: string;
109
+ storagePath: string;
110
+ }[]): Promise<{
82
111
  success: boolean;
83
112
  result: string;
84
113
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseBackupManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseBackupManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{EventEmitter}from"events";import{runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath}from"../utils/restic/helpers";import{runRcloneCommand}from"../utils/rclone/rclone";import{CronManager}from"./CronManager";import{BackupHandler}from"./handlers/BackupHandler";import{PruneHandler}from"./handlers/PruneHandler";import{jobQueue}from"../jobs/JobQueue";import{generateUID}from"../utils/helpers";import{configService}from"../services/ConfigService";export class BaseBackupManager extends EventEmitter{_scheduleFilePath;_cronManager;_backupHandler;constructor(configPath){super(),this._scheduleFilePath=configPath,this._cronManager=CronManager.getInstance({backup:this.queueBackup.bind(this)},this._scheduleFilePath)}get cronManager(){return this._cronManager}get backupHandler(){return this._backupHandler||(this._backupHandler=new BackupHandler(this)),this._backupHandler}async createBackup(planId,options){const{storagePath:storagePath,storage:storage}=options,{encryption:encryption}=options.settings,encKey=configService.config.ENCRYPTION_KEY;if(encryption&&(!encKey||""===encKey.trim()))return{success:!1,result:"Encryption is enabled but ENCRYPTION_KEY is not set in environment variables."};const repoPassword=encryption?encKey:"";try{const repoCommand=["-r",generateResticRepoPath(storage.name,storagePath||""),"init","--verbose"];encryption||repoCommand.push("--insecure-no-password");await runResticCommand(repoCommand,{RESTIC_PASSWORD:repoPassword,RCLONE_CONFIG_PASS:repoPassword},data=>{})}catch(error){return{success:!1,result:"Could Not Create Restic Repo. Details: "+error.message}}try{await this.createOrUpdateSchedules(planId,options,"create");const initScheduleRes=await this.performBackup(planId);return{success:!0,result:initScheduleRes.success?"Backup Schedule Created. Initial Backup Started.":"Could not Start the Initial Backup. Please run the Backup Manually."}}catch(error){return{success:!1,result:error.message}}}async updateBackup(planId,options){try{return await this.createOrUpdateSchedules(planId,options,"update"),{success:!0,result:"Backup Schedule Updated. initBackupStatus"}}catch(error){return{success:!1,result:error.message}}}async queueBackup(planId,options){if(options&&!options.isActive)return;const backupId=generateUID(),{retries:retries=5,retryDelay:retryDelay=300}=options?.settings||{};jobQueue.add("Backup",{planId:planId,backupId:backupId},retries,1e3*retryDelay)}async removeBackup(planId,options){try{await this.cronManager.removeSchedule(planId);let removeResult="Successfully Removed";if(options.storagePath&&options.removeRemoteData){removeResult+=await runRcloneCommand(["purge",`${options.storageName}:${options.storagePath}`])}return{success:!0,result:removeResult}}catch(error){return{success:!1,result:error.message}}}async performBackup(planId){const backupId=generateUID(),schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type),options=backupSchedule?.options,{retries:retries=5,retryDelay:retryDelay=60}=options?.settings||{};return backupSchedule&&backupSchedule.options?(jobQueue.addPriorityJob("Backup",{planId:planId,backupId:backupId},retries,1e3*retryDelay),{success:!0,result:"Backup job has been added to the queue."}):{success:!1,result:"No backup schedule found for this plan."}}async performBackupExecution(planId,backupId,retryInfo){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(!backupSchedule||!backupSchedule.options)throw new Error(`No backup schedule options found for plan ${planId}.`);const options=backupSchedule.options;return await this.backupHandler.execute(planId,backupId,options,retryInfo)}async cancelBackup(planId,backupId){const cancelled=await this.backupHandler.cancel(planId,backupId);return{success:cancelled,result:cancelled?"Cancelled Backup":"Failed to cancel Backup"}}async pauseBackup(planId){const paused=await this.cronManager.pauseSchedule(planId);return{success:paused,result:paused?"Paused Backup":"Failed to Pause Backup"}}async resumeBackup(planId){const resumed=await this.cronManager.resumeSchedule(planId);return{success:resumed,result:resumed?"Resumed Backup":"Failed to Resume Backup"}}async pruneBackups(planId){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(backupSchedule){const pruneHandler=new PruneHandler(this);return await pruneHandler.prune(planId,backupSchedule.options,!0)}return{success:!1,result:"Backup Task Not Found"}}async unlockRepo(planId){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type),encKey=configService.config.ENCRYPTION_KEY;if(!backupSchedule||!backupSchedule.options)return{success:!1,result:`No backup schedule configuration found for plan ${planId}.`};const options=backupSchedule.options;if(!options.storage||!options.storage.name)return{success:!1,result:"Storage configuration is missing for this plan."};try{const repoPath=generateResticRepoPath(options.storage.name,options.storagePath||""),repoPassword=options.settings.encryption?encKey:"",resticArgs=["unlock","-r",repoPath,"--json"],output=await runResticCommand(resticArgs,{RESTIC_PASSWORD:repoPassword});return{success:!0,result:output.trim()||"Successfully removed all stale locks from the repository."}}catch(error){return{success:!1,result:error.message||"An unknown error occurred during the unlock process."}}}async createOrUpdateSchedules(planId,options,action="create"){const{cronExpression:cronExpression,settings:settings,storageId:storageId,storage:storage,storagePath:storagePath,isActive:isActive,id:id,title:title,sourceConfig:sourceConfig,sourceId:sourceId}=options,backupExecOpts={id:id,title:title,isActive:isActive,cronExpression:cronExpression,sourceConfig:sourceConfig,sourceId:sourceId,storageId:storageId,storage:storage,storagePath:storagePath,settings:settings},backupOptions={...backupExecOpts,isActive:backupExecOpts.isActive||!1,taskCallback:(id,opts)=>{this.queueBackup(id,opts)}};if("create"===action)await this.cronManager.scheduleTask(planId,cronExpression,backupOptions,"backup");else{const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);backupSchedule?await this.cronManager.updateSchedule(planId,cronExpression,backupOptions,"backup"):await this.cronManager.scheduleTask(planId,cronExpression,backupOptions,"backup")}}async updatePlanStorageName(storageId,newStorageName){try{const schedules=await this.cronManager.getSchedules();if(schedules)for(const[planId,scheduleEntries]of Object.entries(schedules)){const backupSchedule=scheduleEntries.find(s=>"backup"===s.type);if(backupSchedule?.options.storageId===storageId){const updatedOptions={...backupSchedule.options,storageName:newStorageName};await this.cronManager.updateSchedule(planId,updatedOptions.cronExpression,{...updatedOptions},"backup")}}return{success:!0,result:"Relevant schedules were updated with new storage name."}}catch(error){return{success:!1,result:"Failed to updated Schedules with new storage name. "+error?.message||""}}}testFunc(){}}
1
+ import{EventEmitter}from"events";import{runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath}from"../utils/restic/helpers";import{runRcloneCommand}from"../utils/rclone/rclone";import{CronManager}from"./CronManager";import{BackupHandler}from"./handlers/BackupHandler";import{PruneHandler}from"./handlers/PruneHandler";import{jobQueue}from"../jobs/JobQueue";import{generateUID}from"../utils/helpers";import{configService}from"../services/ConfigService";export class BaseBackupManager extends EventEmitter{_scheduleFilePath;_cronManager;_backupHandler;constructor(configPath){super(),this._scheduleFilePath=configPath,this._cronManager=CronManager.getInstance({backup:this.queueBackup.bind(this)},this._scheduleFilePath)}get cronManager(){return this._cronManager}get backupHandler(){return this._backupHandler||(this._backupHandler=new BackupHandler(this)),this._backupHandler}async createBackup(planId,options){const{storagePath:storagePath,storage:storage}=options,{encryption:encryption}=options.settings,encKey=configService.config.ENCRYPTION_KEY;if(encryption&&(!encKey||""===encKey.trim()))return{success:!1,result:"Encryption is enabled but ENCRYPTION_KEY is not set in environment variables."};const repoPassword=encryption?encKey:"";try{const repoCommand=["-r",generateResticRepoPath(storage.name,storagePath||""),"init","--verbose"];encryption||repoCommand.push("--insecure-no-password");await runResticCommand(repoCommand,{RESTIC_PASSWORD:repoPassword,RCLONE_CONFIG_PASS:repoPassword},data=>{})}catch(error){return{success:!1,result:"Could Not Create Restic Repo. Details: "+error.message}}try{await this.createOrUpdateSchedules(planId,options,"create");const initScheduleRes=await this.performBackup(planId);return{success:!0,result:initScheduleRes.success?"Backup Schedule Created. Initial Backup Started.":"Could not Start the Initial Backup. Please run the Backup Manually."}}catch(error){return{success:!1,result:error.message}}}async updateBackup(planId,options){try{return await this.createOrUpdateSchedules(planId,options,"update"),{success:!0,result:"Backup Schedule Updated. initBackupStatus"}}catch(error){return{success:!1,result:error.message}}}async queueBackup(planId,options){if(options&&!options.isActive)return;const backupId=generateUID(),{retries:retries=5,retryDelay:retryDelay=300}=options?.settings||{};jobQueue.add("Backup",{planId:planId,backupId:backupId},retries,1e3*retryDelay)}async removeBackup(planId,options){try{await this.cronManager.removeSchedule(planId);let removeResult="Successfully Removed";if(options.storagePath&&options.removeRemoteData){removeResult+=await runRcloneCommand(["purge",`${options.storageName}:${options.storagePath}`])}if(options.removeRemoteData&&options.replicationStorages?.length)for(const replica of options.replicationStorages)try{const output=await runRcloneCommand(["purge",`${replica.storageName}:${replica.storagePath}`]);removeResult+=` | Replication ${replica.storageName}: ${output}`}catch(error){removeResult+=` | Replication ${replica.storageName} purge failed: ${error.message}`}return{success:!0,result:removeResult}}catch(error){return{success:!1,result:error.message}}}async performBackup(planId){const backupId=generateUID(),schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type),options=backupSchedule?.options,{retries:retries=5,retryDelay:retryDelay=60}=options?.settings||{};return backupSchedule&&backupSchedule.options?(jobQueue.addPriorityJob("Backup",{planId:planId,backupId:backupId},retries,1e3*retryDelay),{success:!0,result:"Backup job has been added to the queue."}):{success:!1,result:"No backup schedule found for this plan."}}async performBackupExecution(planId,backupId,retryInfo){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(!backupSchedule||!backupSchedule.options)throw new Error(`No backup schedule options found for plan ${planId}.`);const options=backupSchedule.options;return await this.backupHandler.execute(planId,backupId,options,retryInfo)}async cancelBackup(planId,backupId){const cancelled=await this.backupHandler.cancel(planId,backupId);return{success:cancelled,result:cancelled?"Cancelled Backup":"Failed to cancel Backup"}}async retryFailedReplications(planId,backupId,failedReplicationIds){try{const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(!backupSchedule||!backupSchedule.options)return{success:!1,result:`No backup schedule options found for plan ${planId}.`};const options=backupSchedule.options,replication=options.settings?.replication;if(!replication?.enabled||!replication.storages?.length)return{success:!1,result:"Replication is not enabled for this plan."};if(0===replication.storages.filter(s=>failedReplicationIds.includes(s.replicationId)).length)return{success:!1,result:"No matching replication storages found."};const results=await this.backupHandler.retryFailedReplications(planId,backupId,options,failedReplicationIds),allSucceeded=results.every(m=>"completed"===m.status);return{success:allSucceeded,result:allSucceeded?"All replications succeeded.":`${results.filter(m=>"failed"===m.status).length} replication(s) still failed.`}}catch(error){return{success:!1,result:error.message||"Failed to retry replications."}}}async removeReplicationStorage(planId,options){try{let result="Replication storage removed from plan.";if(options.removeData&&options.storagePath){result+=` Data purged: ${await runRcloneCommand(["purge",`${options.storageName}:${options.storagePath}`])}`}return{success:!0,result:result}}catch(error){return{success:!1,result:error.message||"Failed to remove replication storage data."}}}async pauseBackup(planId){const paused=await this.cronManager.pauseSchedule(planId);return{success:paused,result:paused?"Paused Backup":"Failed to Pause Backup"}}async resumeBackup(planId){const resumed=await this.cronManager.resumeSchedule(planId);return{success:resumed,result:resumed?"Resumed Backup":"Failed to Resume Backup"}}async pruneBackups(planId,replicationStorages){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);if(backupSchedule){const pruneHandler=new PruneHandler(this),pruneResult=await pruneHandler.prune(planId,backupSchedule.options,!0);if(replicationStorages?.length){const options=backupSchedule.options;for(const replica of replicationStorages)try{const replicaOptions={...backupSchedule.options,storage:{...options.storage,name:replica.storageName},storagePath:replica.storagePath};await pruneHandler.prune(planId,replicaOptions,!1)}catch(error){}}return pruneResult}return{success:!1,result:"Backup Task Not Found"}}async unlockRepo(planId,replicationStorages){const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type),encKey=configService.config.ENCRYPTION_KEY;if(!backupSchedule||!backupSchedule.options)return{success:!1,result:`No backup schedule configuration found for plan ${planId}.`};const options=backupSchedule.options;if(!options.storage||!options.storage.name)return{success:!1,result:"Storage configuration is missing for this plan."};try{const repoPath=generateResticRepoPath(options.storage.name,options.storagePath||""),repoPassword=options.settings.encryption?encKey:"",resticArgs=["unlock","-r",repoPath,"--json"];let resultMessage=(await runResticCommand(resticArgs,{RESTIC_PASSWORD:repoPassword})).trim()||"Successfully removed all stale locks from the repository.";if(replicationStorages?.length)for(const replica of replicationStorages)try{const replicaRepoPath=generateResticRepoPath(replica.storageName,replica.storagePath||"");await runResticCommand(["unlock","-r",replicaRepoPath,"--json"],{RESTIC_PASSWORD:repoPassword}),resultMessage+=` | ${replica.storageName}: unlocked`}catch(error){resultMessage+=` | ${replica.storageName}: unlock failed - ${error.message}`}return{success:!0,result:resultMessage}}catch(error){return{success:!1,result:error.message||"An unknown error occurred during the unlock process."}}}async createOrUpdateSchedules(planId,options,action="create"){const{cronExpression:cronExpression,settings:settings,storageId:storageId,storage:storage,storagePath:storagePath,isActive:isActive,id:id,title:title,sourceConfig:sourceConfig,sourceId:sourceId}=options,backupExecOpts={id:id,title:title,isActive:isActive,cronExpression:cronExpression,sourceConfig:sourceConfig,sourceId:sourceId,storageId:storageId,storage:storage,storagePath:storagePath,settings:settings},backupOptions={...backupExecOpts,isActive:backupExecOpts.isActive||!1,taskCallback:(id,opts)=>{this.queueBackup(id,opts)}};if("create"===action)await this.cronManager.scheduleTask(planId,cronExpression,backupOptions,"backup");else{const schedules=await this.cronManager.getSchedule(planId),backupSchedule=schedules?.find(s=>"backup"===s.type);backupSchedule?await this.cronManager.updateSchedule(planId,cronExpression,backupOptions,"backup"):await this.cronManager.scheduleTask(planId,cronExpression,backupOptions,"backup")}}async updatePlanStorageName(storageId,newStorageName){try{const schedules=await this.cronManager.getSchedules();if(schedules)for(const[planId,scheduleEntries]of Object.entries(schedules)){const backupSchedule=scheduleEntries.find(s=>"backup"===s.type);if(backupSchedule?.options.storageId===storageId){const updatedOptions={...backupSchedule.options,storageName:newStorageName};await this.cronManager.updateSchedule(planId,updatedOptions.cronExpression,{...updatedOptions},"backup")}}return{success:!0,result:"Relevant schedules were updated with new storage name."}}catch(error){return{success:!1,result:"Failed to updated Schedules with new storage name. "+error?.message||""}}}testFunc(){}}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseBackupManager.js","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseBackupManager.js","sourceRoot":"","sources":["../../src/managers/BaseBackupManager.ts"],"names":[],"mappings":"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"}
@@ -15,22 +15,39 @@ export declare class BaseSnapshotManager extends EventEmitter {
15
15
  storagePath: string;
16
16
  storageName: string;
17
17
  encryption: boolean;
18
- planId: string;
18
+ mirrors?: {
19
+ replicationId: string;
20
+ storageName: string;
21
+ storagePath: string;
22
+ }[];
19
23
  }): Promise<{
20
24
  success: boolean;
21
25
  result: any;
22
- stats?: false | {
23
- total_size: number;
24
- snapshots: string[];
26
+ stats?: {
27
+ primary: null | {
28
+ total_size: number;
29
+ snapshots: string[];
30
+ };
31
+ mirrors?: {
32
+ [key: string]: {
33
+ total_size: number;
34
+ snapshots: string[];
35
+ };
36
+ };
25
37
  };
26
38
  }>;
27
39
  getSnapshotFiles(backupId: string, options: {
28
40
  storagePath: string;
29
41
  storageName: string;
30
42
  encryption: boolean;
43
+ skipCache?: boolean;
31
44
  }): Promise<{
32
45
  success: boolean;
33
46
  result: SnapShotFile[] | string;
34
47
  }>;
48
+ retryFailedReplication(planId: string, backupId: string, replicationIds: string[]): Promise<{
49
+ success: boolean;
50
+ result: string;
51
+ }>;
35
52
  }
36
53
  //# sourceMappingURL=BaseSnapshotManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSnapshotManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,qBAAa,mBAAoB,SAAQ,YAAY;IACpD,OAAO,CAAC,eAAe,CAAkB;;IAOnC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GACxE,OAAO,CAAC,GAAG,CAAC;IAqBT,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAenE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAetE,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACxF,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,CAAC,EAAE,KAAK,GAAG;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC5D,CAAC;IA+BI,gBAAgB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GACxE,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;KAAE,CAAC;CA4DjE"}
1
+ {"version":3,"file":"BaseSnapshotManager.d.ts","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,qBAAa,mBAAoB,SAAQ,YAAY;IACpD,OAAO,CAAC,eAAe,CAAkB;;IAOnC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GACxE,OAAO,CAAC,GAAG,CAAC;IAqBT,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAenE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAetE,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAChF,GACC,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,CAAC,EAAE;YACP,OAAO,EAAE,IAAI,GAAG;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,EAAE,CAAA;aAAE,CAAC;YAC5D,OAAO,CAAC,EAAE;gBAAE,CAAC,GAAG,EAAE,MAAM,GAAG;oBAAE,UAAU,EAAE,MAAM,CAAC;oBAAC,SAAS,EAAE,MAAM,EAAE,CAAA;iBAAE,CAAA;aAAE,CAAC;SACzE,CAAC;KACF,CAAC;IA6DI,gBAAgB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7F,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;KAAE,CAAC;IAiE3D,sBAAsB,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAShD"}
@@ -1 +1 @@
1
- import{EventEmitter}from"events";import{getBackupPlanStats,getSnapshotByTag,runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath,resticPathToWindows}from"../utils/restic/helpers";import{DownloadHandler}from"./handlers/DownloadHandler";import{configService}from"../services/ConfigService";import{appPaths}from"../utils/AppPaths";import{readFile,writeFile}from"fs/promises";export class BaseSnapshotManager extends EventEmitter{downloadHandler;constructor(){super(),this.downloadHandler=new DownloadHandler(this)}async listSnapshots(){return runResticCommand(["snapshots","--json"])}async downloadSnapshot(planId,backupId,snapShotPath,options){try{const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);return success&&"string"!=typeof result?(this.downloadHandler.download(planId,backupId,result.id,options),{success:!0,result:"Generating Download.."}):{success:success,result:result}}catch(error){return{success:!1,result:error?.message||""}}}async getSnapshotDownload(planId,backupId){try{return{success:!0,result:await this.downloadHandler.get(planId,backupId)}}catch(error){return{success:!1,result:error?.message||""}}}async cancelSnapshotDownload(planId,backupId){try{return{success:await this.downloadHandler.cancel(planId,backupId),result:"Download cancelled"}}catch(error){return{success:!1,result:error?.message||""}}}async removeSnapshot(planId,backupId,options){try{const{storageName:storageName,storagePath:storagePath,encryption:encryption,planId:planId}=options,repoPassword=encryption?configService.config.ENCRYPTION_KEY:"",repoPath=generateResticRepoPath(storageName,storagePath||"");let snapshotId="";const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);if(!success||"string"==typeof result)return{success:success,result:result};snapshotId=result.id;const output=await runResticCommand(["-r",repoPath,"forget",snapshotId,"--json"],{RESTIC_PASSWORD:repoPassword});return{success:!0,result:output,stats:await getBackupPlanStats(planId,storageName,storagePath,encryption)}}catch(error){return{success:!1,result:error?.message||""}}}async getSnapshotFiles(backupId,options){const filename=`backup-${backupId}-snapshot.json`,snapshotFilePath=`${appPaths.getCacheDir()}/${filename}`;try{const snapshotCache=await readFile(snapshotFilePath,"utf8");return{success:!0,result:JSON.parse(snapshotCache)}}catch(error){}try{let snapshotId;const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);if(!success||"string"==typeof result)return{success:!1,result:"Snapshot not found"};snapshotId=result.id;const{storageName:storageName,storagePath:storagePath,encryption:encryption}=options,repoPassword=encryption?configService.config.ENCRYPTION_KEY:"",repoPath=generateResticRepoPath(storageName,storagePath||""),output=await runResticCommand(["ls","-r",repoPath,snapshotId,"--json","--long"],{RESTIC_PASSWORD:repoPassword}),files=output.split(/\r?\n/).filter(line=>""!==line.trim()).map(item=>JSON.parse(item)).filter(item=>void 0!==item.path).map(item=>({name:item.name,path:item.path,srcPath:"win32"===process.platform?resticPathToWindows(item.path):item.path.replace(/\\/g,"/"),type:item.type,isDirectory:"dir"===item.type,size:item.size||0,modifiedAt:item.mtime,owner:"",permissions:item.permissions,isAvailable:!0}));return await writeFile(snapshotFilePath,JSON.stringify(files),"utf8"),{success:!0,result:files}}catch(error){return{success:!1,result:error?.message||"Failed to get snapshot files"}}}}
1
+ import{EventEmitter}from"events";import{readFile,writeFile}from"fs/promises";import{getBackupPlanStats,getSnapshotByTag,runResticCommand}from"../utils/restic/restic";import{generateResticRepoPath,resticPathToWindows}from"../utils/restic/helpers";import{DownloadHandler}from"./handlers/DownloadHandler";import{configService}from"../services/ConfigService";import{appPaths}from"../utils/AppPaths";import{jobQueue}from"../jobs/JobQueue";export class BaseSnapshotManager extends EventEmitter{downloadHandler;constructor(){super(),this.downloadHandler=new DownloadHandler(this)}async listSnapshots(){return runResticCommand(["snapshots","--json"])}async downloadSnapshot(planId,backupId,snapShotPath,options){try{const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);return success&&"string"!=typeof result?(this.downloadHandler.download(planId,backupId,result.id,options),{success:!0,result:"Generating Download.."}):{success:success,result:result}}catch(error){return{success:!1,result:error?.message||""}}}async getSnapshotDownload(planId,backupId){try{return{success:!0,result:await this.downloadHandler.get(planId,backupId)}}catch(error){return{success:!1,result:error?.message||""}}}async cancelSnapshotDownload(planId,backupId){try{return{success:await this.downloadHandler.cancel(planId,backupId),result:"Download cancelled"}}catch(error){return{success:!1,result:error?.message||""}}}async removeSnapshot(planId,backupId,options){try{const{storageName:storageName,storagePath:storagePath,encryption:encryption}=options,repoPassword=encryption?configService.config.ENCRYPTION_KEY:"",reposToRemove=[{id:"primary",name:storageName,path:storagePath}],planStats={primary:null,mirrors:{}},removalOutput={};options.mirrors&&options.mirrors.forEach(mirror=>{reposToRemove.push({id:mirror.replicationId,name:mirror.storageName,path:mirror.storagePath})});for(const repo of reposToRemove){const repoPath=generateResticRepoPath(repo.name,repo.path||""),{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,{storageName:repo.name,storagePath:repo.path,encryption:encryption});if(!success||"string"==typeof result)continue;const snapshotId=result.id,output=await runResticCommand(["-r",repoPath,"forget",snapshotId,"--json"],{RESTIC_PASSWORD:repoPassword});removalOutput[repo.id]=output;const repoStats=await getBackupPlanStats(planId,repo.name,repo.path,encryption);"primary"===repo.id?planStats.primary=repoStats||{total_size:0,snapshots:[]}:repoStats&&(planStats.mirrors[repo.id]=repoStats)}return{success:!0,result:removalOutput,stats:planStats}}catch(error){return{success:!1,result:error?.message||""}}}async getSnapshotFiles(backupId,options){const filename=`backup-${backupId}-snapshot.json`,snapshotFilePath=`${appPaths.getCacheDir()}/${filename}`;if(!options.skipCache)try{const snapshotCache=await readFile(snapshotFilePath,"utf8");return{success:!0,result:JSON.parse(snapshotCache)}}catch(error){}try{let snapshotId;const{success:success,result:result}=await getSnapshotByTag("backup-"+backupId,options);if(!success||"string"==typeof result)return{success:!1,result:"Snapshot not found"};snapshotId=result.id;const{storageName:storageName,storagePath:storagePath,encryption:encryption}=options,repoPassword=encryption?configService.config.ENCRYPTION_KEY:"",repoPath=generateResticRepoPath(storageName,storagePath||""),output=await runResticCommand(["ls","-r",repoPath,snapshotId,"--json","--long"],{RESTIC_PASSWORD:repoPassword}),files=output.split(/\r?\n/).filter(line=>""!==line.trim()).map(item=>JSON.parse(item)).filter(item=>void 0!==item.path).map(item=>({name:item.name,path:item.path,srcPath:"win32"===process.platform?resticPathToWindows(item.path):item.path.replace(/\\/g,"/"),type:item.type,isDirectory:"dir"===item.type,size:item.size||0,modifiedAt:item.mtime,owner:"",permissions:item.permissions,isAvailable:!0}));return options.skipCache||await writeFile(snapshotFilePath,JSON.stringify(files),"utf8"),{success:!0,result:files}}catch(error){return{success:!1,result:error?.message||"Failed to get snapshot files"}}}async retryFailedReplication(planId,backupId,replicationIds){return jobQueue.add("ReplicationRetry",{planId:planId,backupId:backupId,failedReplicationIds:replicationIds}),{success:!0,result:"Replication retry queued"}}}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSnapshotManager.js","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseSnapshotManager.js","sourceRoot":"","sources":["../../src/managers/BaseSnapshotManager.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,16 @@ export interface ProgressEvent {
17
17
  error?: string;
18
18
  completed: boolean;
19
19
  }
20
+ export interface ReplicationProgress {
21
+ replicationId: string;
22
+ storageId: string;
23
+ storageName: string;
24
+ storageType: string;
25
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'retrying';
26
+ resticData?: ResticProgress;
27
+ error?: string;
28
+ events: ProgressEvent[];
29
+ }
20
30
  export interface BackupProgressFile {
21
31
  planId: string;
22
32
  backupId: string;
@@ -25,6 +35,7 @@ export interface BackupProgressFile {
25
35
  lastUpdate: string;
26
36
  duration?: number;
27
37
  events: ProgressEvent[];
38
+ mirrors?: Record<string, ReplicationProgress>;
28
39
  }
29
40
  export declare class ProgressManager {
30
41
  private progressDir;
@@ -58,6 +69,23 @@ export declare class ProgressManager {
58
69
  * Marks backup as completed
59
70
  */
60
71
  markCompleted(planId: string, backupId: string, success: boolean, errorMsg?: string, finalFail?: boolean): Promise<void>;
72
+ /**
73
+ * Initialize replication entries in the progress file
74
+ */
75
+ initializeReplications(planId: string, backupId: string, mirrors: {
76
+ replicationId: string;
77
+ storageId: string;
78
+ storageName: string;
79
+ storageType: string;
80
+ }[]): Promise<void>;
81
+ /**
82
+ * Update a specific replication's progress action
83
+ */
84
+ updateReplicationAction(planId: string, backupId: string, replicationId: string, action: string, completed: boolean, error?: string): Promise<void>;
85
+ /**
86
+ * Update a specific replication's restic progress data
87
+ */
88
+ updateReplicationResticProgress(planId: string, backupId: string, replicationId: string, resticChunk: string): Promise<void>;
61
89
  /**
62
90
  * Reads progress data from file. Now public but safe.
63
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressManager.d.ts","sourceRoot":"","sources":["../../src/managers/ProgressManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAAmC;gBAEzC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB;IAKtE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;YACW,kBAAkB;IAqChC;;OAEG;IACG,kBAAkB,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;IACG,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChG;;OAEG;IACG,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAIxF;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAazF;;;;OAIG;YACW,gBAAgB;IA4B9B;;;OAGG;YACW,iBAAiB;IAQ/B;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BzD"}
1
+ {"version":3,"file":"ProgressManager.d.ts","sourceRoot":"","sources":["../../src/managers/ProgressManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{writeFile,readFile,mkdir,readdir,stat,unlink}from"fs/promises";import{join,extname}from"path";import{existsSync}from"fs";export class ProgressManager{progressDir;type;writeLocks=new Map;constructor(progressDir,type="backup"){this.progressDir=progressDir,this.type=type}async initialize(){try{existsSync(this.progressDir)||await mkdir(this.progressDir,{recursive:!0})}catch(error){}}async synchronizedUpdate(backupId,updateFunction){const lockKey=`${this.type}-${backupId}`,newLock=(this.writeLocks.get(lockKey)||Promise.resolve()).then(async()=>{const planId=(await this.readProgressFile(backupId))?.planId||"",progress=await this.readProgressFile(backupId,planId);if(progress){const updatedProgress=updateFunction(progress),filename=`${this.type}-${backupId}.json`,filePath=join(this.progressDir,filename),data=JSON.stringify(updatedProgress,null,2);await writeFile(filePath,data,"utf-8")}}).catch(err=>{});this.writeLocks.set(lockKey,newLock),await newLock,this.writeLocks.get(lockKey)===newLock&&this.writeLocks.delete(lockKey)}async initializeProgress(planId,backupId,retryInfo){if(0===retryInfo.attempts){const progress={planId:planId,backupId:backupId,status:"running",startTime:(new Date).toISOString(),lastUpdate:(new Date).toISOString(),events:[{timestamp:(new Date).toISOString(),phase:"initializing",action:"INITIALIZE",completed:!0}]};await this.writeProgressFile(planId,backupId,progress)}}async updateAction(planId,backupId,phase,action,completed,error){await this.synchronizedUpdate(backupId,progress=>{const event={timestamp:(new Date).toISOString(),phase:phase,action:action,completed:completed,error:error};return progress.events.push(event),progress.lastUpdate=(new Date).toISOString(),progress})}async updateResticProgress(planId,backupId,resticChunk){const lines=resticChunk.split("\n").filter(line=>""!==line.trim());0!==lines.length&&await this.synchronizedUpdate(backupId,progress=>{let targetEvent,didUpdate=!1;for(let i=progress.events.length-1;i>=0;i--){const event=progress.events[i];if(("backup"===event.phase||"restore"===event.phase)&&!event.completed){targetEvent=event;break}}if(!targetEvent)return progress;for(const line of lines)try{const resticData=JSON.parse(line);"status"!==resticData.message_type&&"summary"!==resticData.message_type||(targetEvent.resticData=resticData,didUpdate=!0)}catch(e){}return didUpdate&&(targetEvent.timestamp=(new Date).toISOString(),progress.lastUpdate=(new Date).toISOString()),progress})}async markCompleted(planId,backupId,success,errorMsg,finalFail){await this.synchronizedUpdate(backupId,progress=>{progress.lastUpdate=(new Date).toISOString();const startTime=new Date(progress.startTime),endTime=new Date;let finalEvent;if(progress.duration=endTime.getTime()-startTime.getTime(),success)progress.status="completed",finalEvent={timestamp:(new Date).toISOString(),phase:"finished",action:"TASK_COMPLETED",completed:!0};else{progress.status="failed";const finalFailReason=errorMsg?.includes("cancelled")?"TASK_CANCELLED":"FAILED_PERMANENTLY";finalEvent={timestamp:(new Date).toISOString(),phase:finalFail?"finished":"error",action:finalFail?finalFailReason:"TASK_FAILED",error:errorMsg,completed:!0}}return progress.events.push(finalEvent),progress})}async readProgress(planId,backupId){return this.readProgressFile(backupId,planId)}async getResticProgress(planId,backupId){const progress=await this.readProgressFile(backupId,planId);if(!progress)return null;for(let i=progress.events.length-1;i>=0;i--){const event=progress.events[i];if(event.resticData)return event.resticData}return null}async readProgressFile(backupId,planId){const filename=`${this.type}-${backupId}.json`,filePath=join(this.progressDir,filename);try{const data=await readFile(filePath,"utf-8");if(!data)throw new Error("File is empty");return JSON.parse(data)}catch(error){return"ENOENT"!==error.code&&error.message,{planId:planId||"",backupId:backupId,status:"running",startTime:(new Date).toISOString(),lastUpdate:(new Date).toISOString(),events:[]}}}async writeProgressFile(planId,backupId,progress){await this.synchronizedUpdate(backupId,()=>progress)}async cleanupOldProgress(maxAgeMs){try{const files=await readdir(this.progressDir),cutoff=Date.now()-maxAgeMs;for(const file of files){if(".json"!==extname(file))continue;const filePath=join(this.progressDir,file);try{(await stat(filePath)).mtime.getTime()<cutoff&&await unlink(filePath)}catch(error){}}}catch(error){}}}
1
+ import{writeFile,readFile,mkdir,readdir,stat,unlink}from"fs/promises";import{join,extname}from"path";import{existsSync}from"fs";export class ProgressManager{progressDir;type;writeLocks=new Map;constructor(progressDir,type="backup"){this.progressDir=progressDir,this.type=type}async initialize(){try{existsSync(this.progressDir)||await mkdir(this.progressDir,{recursive:!0})}catch(error){}}async synchronizedUpdate(backupId,updateFunction){const lockKey=`${this.type}-${backupId}`,newLock=(this.writeLocks.get(lockKey)||Promise.resolve()).then(async()=>{const planId=(await this.readProgressFile(backupId))?.planId||"",progress=await this.readProgressFile(backupId,planId);if(progress){const updatedProgress=updateFunction(progress),filename=`${this.type}-${backupId}.json`,filePath=join(this.progressDir,filename),data=JSON.stringify(updatedProgress,null,2);await writeFile(filePath,data,"utf-8")}}).catch(err=>{});this.writeLocks.set(lockKey,newLock),await newLock,this.writeLocks.get(lockKey)===newLock&&this.writeLocks.delete(lockKey)}async initializeProgress(planId,backupId,retryInfo){if(0===retryInfo.attempts){const progress={planId:planId,backupId:backupId,status:"running",startTime:(new Date).toISOString(),lastUpdate:(new Date).toISOString(),events:[{timestamp:(new Date).toISOString(),phase:"initializing",action:"INITIALIZE",completed:!0}]};await this.writeProgressFile(planId,backupId,progress)}}async updateAction(planId,backupId,phase,action,completed,error){await this.synchronizedUpdate(backupId,progress=>{const event={timestamp:(new Date).toISOString(),phase:phase,action:action,completed:completed,error:error};return progress.events.push(event),progress.lastUpdate=(new Date).toISOString(),progress})}async updateResticProgress(planId,backupId,resticChunk){const lines=resticChunk.split("\n").filter(line=>""!==line.trim());0!==lines.length&&await this.synchronizedUpdate(backupId,progress=>{let targetEvent,didUpdate=!1;for(let i=progress.events.length-1;i>=0;i--){const event=progress.events[i];if(("backup"===event.phase||"restore"===event.phase)&&!event.completed){targetEvent=event;break}}if(!targetEvent)return progress;for(const line of lines)try{const resticData=JSON.parse(line);"status"!==resticData.message_type&&"summary"!==resticData.message_type||(targetEvent.resticData=resticData,didUpdate=!0)}catch(e){}return didUpdate&&(targetEvent.timestamp=(new Date).toISOString(),progress.lastUpdate=(new Date).toISOString()),progress})}async markCompleted(planId,backupId,success,errorMsg,finalFail){await this.synchronizedUpdate(backupId,progress=>{progress.lastUpdate=(new Date).toISOString();const startTime=new Date(progress.startTime),endTime=new Date;let finalEvent;if(progress.duration=endTime.getTime()-startTime.getTime(),success)progress.status="completed",finalEvent={timestamp:(new Date).toISOString(),phase:"finished",action:"TASK_COMPLETED",completed:!0};else{progress.status="failed";const finalFailReason=errorMsg?.includes("cancelled")?"TASK_CANCELLED":"FAILED_PERMANENTLY";finalEvent={timestamp:(new Date).toISOString(),phase:finalFail?"finished":"error",action:finalFail?finalFailReason:"TASK_FAILED",error:errorMsg,completed:!0}}return progress.events.push(finalEvent),progress})}async initializeReplications(planId,backupId,mirrors){await this.synchronizedUpdate(backupId,progress=>{progress.mirrors||(progress.mirrors={});for(const mirror of mirrors){const isRetry=progress.mirrors[mirror.replicationId]?.events?.length>0;progress.mirrors[mirror.replicationId]={replicationId:mirror.replicationId,storageId:mirror.storageId,storageName:mirror.storageName,storageType:mirror.storageType,status:isRetry?"retrying":"pending",events:[]}}return progress.lastUpdate=(new Date).toISOString(),progress})}async updateReplicationAction(planId,backupId,replicationId,action,completed,error){await this.synchronizedUpdate(backupId,progress=>{if(!progress.mirrors?.[replicationId])return progress;const replicationProgress=progress.mirrors[replicationId],event={timestamp:(new Date).toISOString(),phase:"replicating",action:action,completed:completed,error:error};return replicationProgress.events.push(event),action.includes("SCHEDULED")&&action.includes("RETRY")?replicationProgress.status="retrying":action.includes("START")&&!action.includes("PRUNE")?replicationProgress.status="running":"REPLICATION_COMPLETE"===action?replicationProgress.status="completed":"REPLICATION_FAILED"===action&&(replicationProgress.status="failed",replicationProgress.error=error),progress.lastUpdate=(new Date).toISOString(),progress})}async updateReplicationResticProgress(planId,backupId,replicationId,resticChunk){const lines=resticChunk.split("\n").filter(line=>""!==line.trim());0!==lines.length&&await this.synchronizedUpdate(backupId,progress=>{if(!progress.mirrors?.[replicationId])return progress;const replicationProgress=progress.mirrors[replicationId];for(const line of lines)try{const resticData=JSON.parse(line);"status"!==resticData.message_type&&"summary"!==resticData.message_type||(replicationProgress.resticData=resticData)}catch(e){}return progress.lastUpdate=(new Date).toISOString(),progress})}async readProgress(planId,backupId){return this.readProgressFile(backupId,planId)}async getResticProgress(planId,backupId){const progress=await this.readProgressFile(backupId,planId);if(!progress)return null;for(let i=progress.events.length-1;i>=0;i--){const event=progress.events[i];if(event.resticData)return event.resticData}return null}async readProgressFile(backupId,planId){const filename=`${this.type}-${backupId}.json`,filePath=join(this.progressDir,filename);try{const data=await readFile(filePath,"utf-8");if(!data)throw new Error("File is empty");return JSON.parse(data)}catch(error){return"ENOENT"!==error.code&&error.message,{planId:planId||"",backupId:backupId,status:"running",startTime:(new Date).toISOString(),lastUpdate:(new Date).toISOString(),events:[]}}}async writeProgressFile(planId,backupId,progress){await this.synchronizedUpdate(backupId,()=>progress)}async cleanupOldProgress(maxAgeMs){try{const files=await readdir(this.progressDir),cutoff=Date.now()-maxAgeMs;for(const file of files){if(".json"!==extname(file))continue;const filePath=join(this.progressDir,file);try{(await stat(filePath)).mtime.getTime()<cutoff&&await unlink(filePath)}catch(error){}}}catch(error){}}}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressManager.js","sourceRoot":"","sources":["../../src/managers/ProgressManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProgressManager.js","sourceRoot":"","sources":["../../src/managers/ProgressManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { BackupPlanArgs } from '../../types/plans';
3
+ import { BackupMirror } from '../../types/backups';
3
4
  type ResticArgsAndEnv = {
4
5
  resticArgs: string[];
5
6
  resticEnv: Record<string, string>;
@@ -9,7 +10,9 @@ export declare class BackupHandler {
9
10
  private runningBackups;
10
11
  private cancelledBackups;
11
12
  private progressManager;
13
+ private replicationOrchestrator?;
12
14
  constructor(emitter: EventEmitter);
15
+ private getReplicationOrchestrator;
13
16
  private initializeProgressManager;
14
17
  /**
15
18
  * Executes the backup process of a plan.
@@ -34,6 +37,11 @@ export declare class BackupHandler {
34
37
  * Post-backup phase - cleanup and post-backup operations
35
38
  */
36
39
  private postBackupPhase;
40
+ /**
41
+ * Retries failed replication operations for a specific backup.
42
+ * Delegates to ReplicationOrchestrator.
43
+ */
44
+ retryFailedReplications(planId: string, backupId: string, options: Record<string, any>, failedReplicationIds: string[]): Promise<BackupMirror[]>;
37
45
  /**
38
46
  * Helper to update backup progress with error handling
39
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BackupHandler.d.ts","sourceRoot":"","sources":["../../../src/managers/handlers/BackupHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackupHandler.d.ts","sourceRoot":"","sources":["../../../src/managers/handlers/BackupHandler.ts"],"names":[],"mappings":"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"}