@plutonhq/core-backend 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/controllers/PlanController.d.ts +1 -1
  2. package/dist/controllers/PlanController.d.ts.map +1 -1
  3. package/dist/controllers/PlanController.js +1 -1
  4. package/dist/controllers/PlanController.js.map +1 -1
  5. package/dist/createApp.js +1 -1
  6. package/dist/createApp.js.map +1 -1
  7. package/dist/jobs/tasks/CleanDownloadsTask.d.ts.map +1 -1
  8. package/dist/jobs/tasks/CleanDownloadsTask.js +1 -1
  9. package/dist/jobs/tasks/CleanDownloadsTask.js.map +1 -1
  10. package/dist/managers/BaseSnapshotManager.d.ts.map +1 -1
  11. package/dist/managers/BaseSnapshotManager.js +1 -1
  12. package/dist/managers/BaseSnapshotManager.js.map +1 -1
  13. package/dist/notifications/BackupNotification.d.ts +2 -0
  14. package/dist/notifications/BackupNotification.d.ts.map +1 -1
  15. package/dist/notifications/BackupNotification.js +1 -1
  16. package/dist/notifications/BackupNotification.js.map +1 -1
  17. package/dist/notifications/BaseNotification.d.ts.map +1 -1
  18. package/dist/notifications/BaseNotification.js +1 -1
  19. package/dist/notifications/BaseNotification.js.map +1 -1
  20. package/dist/notifications/channels/NotificationChannelResolver.d.ts +2 -2
  21. package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -1
  22. package/dist/notifications/channels/NotificationChannelResolver.js +1 -1
  23. package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -1
  24. package/dist/notifications/channels/SMTPChannel.js.map +1 -1
  25. package/dist/notifications/templateLoader.d.ts +15 -0
  26. package/dist/notifications/templateLoader.d.ts.map +1 -0
  27. package/dist/notifications/templateLoader.js +1 -0
  28. package/dist/notifications/templateLoader.js.map +1 -0
  29. package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -1
  30. package/dist/notifications/templates/email/backup/BackupFailedNotification.ejs +109 -0
  31. package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -1
  32. package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -1
  33. package/dist/notifications/templates/email/backup/BackupFailedNotification.ts +110 -0
  34. package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -1
  35. package/dist/notifications/templates/email/backup/BackupStartedNotification.ejs +159 -0
  36. package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -1
  37. package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -1
  38. package/dist/notifications/templates/email/backup/BackupStartedNotification.ts +87 -0
  39. package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -1
  40. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ejs +163 -0
  41. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -1
  42. package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -1
  43. package/dist/notifications/templates/email/backup/BackupSuccessNotification.ts +97 -0
  44. package/dist/notifications/templates/email/email.html +801 -0
  45. package/dist/notifications/templates/email/test-email/TestEmailNotification.ts +27 -0
  46. package/dist/routes/plans.js +1 -1
  47. package/dist/routes/plans.js.map +1 -1
  48. package/dist/services/BackupServices.d.ts +1 -1
  49. package/dist/services/BackupServices.d.ts.map +1 -1
  50. package/dist/services/PlanService.d.ts +1 -1
  51. package/dist/services/PlanService.d.ts.map +1 -1
  52. package/dist/services/PlanService.js +1 -1
  53. package/dist/services/PlanService.js.map +1 -1
  54. package/dist/services/SettingsService.d.ts +2 -0
  55. package/dist/services/SettingsService.d.ts.map +1 -1
  56. package/dist/services/SettingsService.js +1 -1
  57. package/dist/services/SettingsService.js.map +1 -1
  58. package/dist/stores/PlanStore.d.ts +1 -0
  59. package/dist/stores/PlanStore.d.ts.map +1 -1
  60. package/dist/stores/PlanStore.js +1 -1
  61. package/dist/stores/PlanStore.js.map +1 -1
  62. package/dist/stores/SettingsStore.d.ts +3 -1
  63. package/dist/stores/SettingsStore.d.ts.map +1 -1
  64. package/dist/stores/SettingsStore.js +1 -1
  65. package/dist/stores/SettingsStore.js.map +1 -1
  66. package/dist/types/notifications.d.ts +11 -0
  67. package/dist/types/notifications.d.ts.map +1 -1
  68. package/dist/utils/AppPaths.d.ts +1 -0
  69. package/dist/utils/AppPaths.d.ts.map +1 -1
  70. package/dist/utils/AppPaths.js +1 -1
  71. package/dist/utils/AppPaths.js.map +1 -1
  72. package/package.json +4 -3
@@ -0,0 +1,27 @@
1
+ import { configService } from '../../../../services/ConfigService';
2
+ import { INTEGRATIONS_AVAILABLE, IntegrationTypes } from '../../../../types/settings';
3
+ import { BaseNotification } from '../../../BaseNotification';
4
+
5
+ export class TestEmailNotification extends BaseNotification {
6
+ integrationName = '';
7
+ constructor(data: { integrationType: IntegrationTypes; appTitle: string }) {
8
+ super();
9
+ const integrationType = data.integrationType;
10
+ this.integrationName = INTEGRATIONS_AVAILABLE[integrationType].name;
11
+ this.subject = `${this.integrationName} Integration Successful`;
12
+ this.content = this.buildContent(data);
13
+ }
14
+ protected buildContent(data: { integrationType: IntegrationTypes; appTitle: string }): string {
15
+ // Generate the Email Body
16
+ const content = `
17
+ <div class="center">
18
+ <h2>${this.integrationName} Integration Successful</h2>
19
+ <p>${configService.config.APP_TITLE || 'Pluton'} can successfully send notifications using ${this.integrationName}</p>
20
+ </div>
21
+ `;
22
+ return this.applyEmailTemplate(content, {
23
+ appTitle: data.appTitle,
24
+ preHeader: `${configService.config.APP_TITLE || 'Pluton'} can successfully send notifications using ${this.integrationName}`,
25
+ });
26
+ }
27
+ }
@@ -1 +1 @@
1
- import{Router}from"express";import authM from"../middlewares/authMiddleware";export function createPlanRouter(controller,router=Router()){return router.get("/",authM,controller.getPlans.bind(controller)),router.get("/:id",authM,controller.getPlan.bind(controller)),router.post("/",authM,controller.createPlan.bind(controller)),router.put("/:id",authM,controller.updatePlan.bind(controller)),router.delete("/:id",authM,controller.deletePlan.bind(controller)),router.get("/:id/logs",authM,controller.getLogs.bind(controller)),router.get("/:id/logs/download",authM,controller.downloadLogs.bind(controller)),router.get("/:id/checkactive",authM,controller.checkActiveBackups.bind(controller)),router.post("/:id/action/backup",authM,controller.performBackup.bind(controller)),router.post("/:id/action/resume",authM,controller.resumeBackup.bind(controller)),router.post("/:id/action/pause",authM,controller.pauseBackup.bind(controller)),router.post("/:id/action/prune",authM,controller.pruneBackup.bind(controller)),router.post("/:id/action/unlock",authM,controller.unlockRepo.bind(controller)),router}
1
+ import{Router}from"express";import authM from"../middlewares/authMiddleware";export function createPlanRouter(controller,router=Router()){return router.get("/",authM,controller.getPlans.bind(controller)),router.get("/:id",authM,controller.getPlan.bind(controller)),router.post("/",authM,controller.createPlan.bind(controller)),router.put("/:id",authM,controller.updatePlan.bind(controller)),router.delete("/:id",authM,controller.deletePlan.bind(controller)),router.get("/:id/logs",authM,controller.getLogs.bind(controller)),router.get("/:id/logs/download",authM,controller.downloadLogs.bind(controller)),router.get("/:id/checkactive",authM,controller.checkActiveBackupsOrRestore.bind(controller)),router.post("/:id/action/backup",authM,controller.performBackup.bind(controller)),router.post("/:id/action/resume",authM,controller.resumeBackup.bind(controller)),router.post("/:id/action/pause",authM,controller.pauseBackup.bind(controller)),router.post("/:id/action/prune",authM,controller.pruneBackup.bind(controller)),router.post("/:id/action/unlock",authM,controller.unlockRepo.bind(controller)),router}
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/routes/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,MAAM,+BAA+B,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,UAA0B,EAAE,SAAiB,MAAM,EAAE;IACrF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjF,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/routes/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,MAAM,+BAA+B,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,UAA0B,EAAE,SAAiB,MAAM,EAAE;IACrF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/F,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjF,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -7,7 +7,7 @@ import { SnapshotStrategy } from '../strategies/snapshot';
7
7
  import { BackupStrategy } from '../strategies/backup';
8
8
  import { BaseBackupManager } from '../managers';
9
9
  import { SnapShotFile } from '../types/restic';
10
- import { Backup } from 'src/db/schema/backups';
10
+ import { Backup } from '../db/schema/backups';
11
11
  export declare class BackupService {
12
12
  protected localSnapshotAgent: BaseSnapshotManager;
13
13
  protected localPlanAgent: BaseBackupManager;
@@ -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,uBAAuB,CAAC;AAE/C,qBAAa,aAAa;IAIxB,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;IARrC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;gBAGX,kBAAkB,EAAE,mBAAmB,EACvC,cAAc,EAAE,iBAAiB,EACjC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAEpC,MAAM,EAAE,GAAG;IAKZ,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;;;;;;;;IAoC9D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBjD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBtD,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBpE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAgC7C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBjD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA2B3D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAWnE,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;AAE9C,qBAAa,aAAa;IAIxB,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;IARrC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;gBAGX,kBAAkB,EAAE,mBAAmB,EACvC,cAAc,EAAE,iBAAiB,EACjC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAEpC,MAAM,EAAE,GAAG;IAKZ,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;;;;;;;;IAoC9D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBjD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBtD,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBpE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAgC7C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBjD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA2B3D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAWnE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBxD"}
@@ -22,7 +22,7 @@ export declare class PlanService {
22
22
  getStrategy(plan: NewPlan | Plan): BackupStrategy | any;
23
23
  getPlan(planId: string, history?: boolean): Promise<Plan | null>;
24
24
  getAllPlans(history?: boolean): Promise<Plan[] | null>;
25
- checkActiveBackups(planId: string): Promise<boolean>;
25
+ checkActiveBackupsOrRestore(planId: string, type: 'backup' | 'restore'): Promise<boolean>;
26
26
  /**
27
27
  * Creates a new plan, its schedule, and optionally triggers the first backup.
28
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PlanService.d.ts","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAsC,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD;;;;GAIG;AACH,qBAAa,WAAW;IAItB,SAAS,CAAC,UAAU,EAAE,iBAAiB;IACvC,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,WAAW,EAAE,WAAW;IAPnC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;gBAGX,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAClC,MAAM,EAAE,GAAG;IAKZ,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,cAAc,GAAG,GAAG;IAO1C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQtE,WAAW,CAAC,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAK5D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE;;OAEG;IACU,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyF5D;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D/E;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BpF;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD;;OAEG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1D;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD;;OAEG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BtF;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC;IA8C5E;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YAyB/D,iBAAiB;CAc/B"}
1
+ {"version":3,"file":"PlanService.d.ts","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAsC,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD;;;;GAIG;AACH,qBAAa,WAAW;IAItB,SAAS,CAAC,UAAU,EAAE,iBAAiB;IACvC,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,WAAW,EAAE,WAAW;IAPnC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;gBAGX,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAClC,MAAM,EAAE,GAAG;IAKZ,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,cAAc,GAAG,GAAG;IAO1C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQtE,WAAW,CAAC,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAK5D,2BAA2B,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,GAAG,SAAS,GACxB,OAAO,CAAC,OAAO,CAAC;IAOnB;;OAEG;IACU,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyF5D;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D/E;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BpF;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD;;OAEG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1D;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD;;OAEG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BtF;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC;IA8C5E;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YAyB/D,iBAAiB;CAc/B"}
@@ -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";export class PlanService{localAgent;planStore;backupStore;storageStore;deviceStore;broker;constructor(localAgent,planStore,backupStore,storageStore,deviceStore,broker){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.storageStore=storageStore,this.deviceStore=deviceStore,this.broker=broker}getStrategy(plan){return"main"!==plan.sourceId?new RemoteBackupStrategy(this.broker,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 checkActiveBackups(planId){return 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.");let theStoragePath=sanitizeStoragePath(storagePath,planStorage.type),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}if(!await this.deviceStore.getById(sourceId))throw new NotFoundError("Source device not found");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||"",options={storageName:"Local"===storageName||"Local Storage"===storageName?"local":storageName,storagePath:plan.storagePath||"",encryption:plan.settings.encryption||!0,removeRemoteData:removeRemoteData},strategy=this.getStrategy(plan),deleteResult=await strategy.removeBackup(planId,options);if(!deleteResult.success)throw new AppError(500,deleteResult.result);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 strategy=this.getStrategy(plan),pruneResult=await strategy.pruneBackups(planId);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 unlockRepo(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const 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);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 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}}}
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";export class PlanService{localAgent;planStore;backupStore;storageStore;deviceStore;broker;constructor(localAgent,planStore,backupStore,storageStore,deviceStore,broker){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.storageStore=storageStore,this.deviceStore=deviceStore,this.broker=broker}getStrategy(plan){return"main"!==plan.sourceId?new RemoteBackupStrategy(this.broker,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.");let theStoragePath=sanitizeStoragePath(storagePath,planStorage.type),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}if(!await this.deviceStore.getById(sourceId))throw new NotFoundError("Source device not found");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||"",options={storageName:"Local"===storageName||"Local Storage"===storageName?"local":storageName,storagePath:plan.storagePath||"",encryption:plan.settings.encryption||!0,removeRemoteData:removeRemoteData},strategy=this.getStrategy(plan),deleteResult=await strategy.removeBackup(planId,options);if(!deleteResult.success)throw new AppError(500,deleteResult.result);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 strategy=this.getStrategy(plan),pruneResult=await strategy.pruneBackups(planId);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 unlockRepo(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const 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);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 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}}}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanService.js","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanService.js","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,13 @@ import { ReadStream } from 'fs';
2
2
  import { Settings } from '../db/schema/settings';
3
3
  import { SettingsStore } from '../stores/SettingsStore';
4
4
  import { AppSettings, IntegrationTypes } from '../types/settings';
5
+ import { INotificationChannelResolver } from '../types/notifications';
5
6
  /**
6
7
  * A class for managing settings operations.
7
8
  */
8
9
  export declare class SettingsService {
9
10
  protected settingsStore: SettingsStore;
11
+ protected notificationChannelResolver: INotificationChannelResolver;
10
12
  constructor(settingsStore: SettingsStore);
11
13
  getMainSettings(): Promise<Settings | null>;
12
14
  getSettings(id: number): Promise<Settings | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsService.d.ts","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,UAAU,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAwB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKlE;;GAEG;AACH,qBAAa,eAAe;IACf,SAAS,CAAC,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa;IAE5C,eAAe,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI3C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIjD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgC3E,mBAAmB,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACvB,QAAQ,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAqDb,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAwCtD,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;CAkB3C"}
1
+ {"version":3,"file":"SettingsService.d.ts","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,UAAU,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAwB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAKtE;;GAEG;AACH,qBAAa,eAAe;IAEf,SAAS,CAAC,aAAa,EAAE,aAAa;IADlD,SAAS,CAAC,2BAA2B,EAAE,4BAA4B,CAA+B;gBAC5E,aAAa,EAAE,aAAa;IAE5C,eAAe,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI3C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIjD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgC3E,mBAAmB,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACvB,QAAQ,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAiDb,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAwCtD,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;CAkB3C"}
@@ -1 +1 @@
1
- import{createReadStream,constants}from"fs";import{readFile,access}from"fs/promises";import{settingsUpdateSchema}from"../db/schema/settings";import{TestEmailNotification}from"../notifications/templates/email/test-email/TestEmailNotification";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";export class SettingsService{settingsStore;constructor(settingsStore){this.settingsStore=settingsStore}async getMainSettings(){return await this.settingsStore.getFirst()}async getSettings(id){return await this.settingsStore.getById(id)}async updateSettings(id,settings){try{let parsedSettings={...settings};try{parsedSettings=settingsUpdateSchema.partial().parse({settings:parsedSettings}).settings}catch(error){throw new AppError(400,"Invalid settings data provided")}const updatedSettings=await this.settingsStore.update(id,parsedSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");return updatedSettings}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"An unexpected error occurred while updating settings.")}}async validateIntegration(id,type,test,settings){const appSettings=settings,integrationType=type;appSettings.integration=NotificationChannelResolver.encryptSecrets(appSettings.integration);try{const updatedSettings=await this.settingsStore.update(id,appSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");const theAppSettings=updatedSettings.settings,notificationClass=new TestEmailNotification({integrationType:integrationType,appTitle:theAppSettings?.title||"Pluton"}),senderChannel=await NotificationChannelResolver.getChannel(integrationType),sendRes=await senderChannel.send(notificationClass,{emails:test.email});if(sendRes.success)return theAppSettings?.integration?.[integrationType]&&(theAppSettings.integration[integrationType].connected=!0),await this.settingsStore.update(id,theAppSettings),!0;throw new AppError(500,`Failed to send test email using ${integrationType}. Reason: ${sendRes.result}`)}catch(error){throw new AppError(500,error instanceof Error?error.message:`Failed to send test email using ${integrationType}.`)}}async getAppLogs(id){const logFilePath=`${appPaths.getLogsDir()}/app.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError("No logs found");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 this plan");throw new AppError(500,"Failed to read logs: "+error.message)}}async getAppLogsFile(){const logFilePath=`${appPaths.getLogsDir()}/app.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(500,`Failed to download logs: ${error.message}`)}}}
1
+ import{createReadStream,constants}from"fs";import{readFile,access}from"fs/promises";import{settingsUpdateSchema}from"../db/schema/settings";import{TestEmailNotification}from"../notifications/templates/email/test-email/TestEmailNotification";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";export class SettingsService{settingsStore;notificationChannelResolver=NotificationChannelResolver;constructor(settingsStore){this.settingsStore=settingsStore}async getMainSettings(){return await this.settingsStore.getFirst()}async getSettings(id){return await this.settingsStore.getById(id)}async updateSettings(id,settings){try{let parsedSettings={...settings};try{parsedSettings=settingsUpdateSchema.partial().parse({settings:parsedSettings}).settings}catch(error){throw new AppError(400,"Invalid settings data provided")}const updatedSettings=await this.settingsStore.update(id,parsedSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");return updatedSettings}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"An unexpected error occurred while updating settings.")}}async validateIntegration(id,type,test,settings){const appSettings=settings,integrationType=type;appSettings.integration=this.notificationChannelResolver.encryptSecrets(appSettings.integration);try{const updatedSettings=await this.settingsStore.update(id,appSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");const theAppSettings=updatedSettings.settings,notificationClass=new TestEmailNotification({integrationType:integrationType,appTitle:theAppSettings?.title||"Pluton"}),senderChannel=await this.notificationChannelResolver.getChannel(integrationType),sendRes=await senderChannel.send(notificationClass,{emails:test.email});if(sendRes.success)return theAppSettings?.integration?.[integrationType]&&(theAppSettings.integration[integrationType].connected=!0),await this.settingsStore.update(id,theAppSettings),!0;throw new AppError(500,`Failed to send test email using ${integrationType}. Reason: ${sendRes.result}`)}catch(error){throw new AppError(500,error instanceof Error?error.message:`Failed to send test email using ${integrationType}.`)}}async getAppLogs(id){const logFilePath=`${appPaths.getLogsDir()}/app.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError("No logs found");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 this plan");throw new AppError(500,"Failed to read logs: "+error.message)}}async getAppLogsFile(){const logFilePath=`${appPaths.getLogsDir()}/app.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(500,`Failed to download logs: ${error.message}`)}}}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export declare class PlanStore {
37
37
  update(id: string, updates: Partial<PlanFull | Plan>): Promise<Plan | null>;
38
38
  delete(id: string): Promise<boolean>;
39
39
  hasActiveBackups(planId: string): Promise<boolean>;
40
+ hasActiveRestore(planId: string): Promise<boolean>;
40
41
  setActive(id: string, isActive: boolean): Promise<Plan | null>;
41
42
  encryptScripts(scripts: Plan['settings']['scripts']): Promise<Plan['settings']['scripts']>;
42
43
  decryptScripts(scripts: Plan['settings']['scripts']): Promise<Plan['settings']['scripts']>;
@@ -1 +1 @@
1
- {"version":3,"file":"PlanStore.d.ts","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAS,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAsB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9D;;GAEG;AACH,qBAAa,SAAS;IACT,SAAS,CAAC,EAAE,EAAE,YAAY;gBAAhB,EAAE,EAAE,YAAY;IAEhC,MAAM,CAAC,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAoE3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgE3E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO1D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO9D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;IAqBlF,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAa/C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA4C3E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAI9D,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;IAuB1F,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;CAsBhG"}
1
+ {"version":3,"file":"PlanStore.d.ts","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAS,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAsB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK9D;;GAEG;AACH,qBAAa,SAAS;IACT,SAAS,CAAC,EAAE,EAAE,YAAY;gBAAhB,EAAE,EAAE,YAAY;IAEhC,MAAM,CAAC,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAoE3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgE3E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO1D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO9D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;IAqBlF,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAa/C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA6C3E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAI9D,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;IAuB1F,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;CAsBhG"}
@@ -1 +1 @@
1
- import{eq}from"drizzle-orm";import{and,sql}from"drizzle-orm/sql";import{plans}from"../db/schema/plans";import{backups}from"../db/schema/backups";import Cryptr from"cryptr";import{configService}from"../services/ConfigService";export class PlanStore{db;constructor(db){this.db=db}async getAll(history=!0){const result=await this.db.query.plans.findMany({with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,completionStats:!0,taskStats:!0,inProgress:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});if(result){const plans=result.map(async plan=>(plan?.settings?.scripts&&(plan.settings.scripts=await this.decryptScripts(plan.settings.scripts)),{...plan,backups:this.handleBackupStats(plan.method,plan.backups,plan.stats)}));return Promise.all(plans)}return null}async getById(planId,history=!1){const thePlan=await this.db.query.plans.findFirst({where:eq(plans.id,planId),with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,inProgress:!0,completionStats:!0,taskStats:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,inProgress:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});return thePlan&&thePlan.backups&&(thePlan.backups=this.handleBackupStats(thePlan.method,thePlan.backups,thePlan.stats)),thePlan?.settings?.scripts&&(thePlan.settings.scripts=await this.decryptScripts(thePlan.settings.scripts)),thePlan||null}async getStoragePlans(storageId){return await this.db.query.plans.findMany({where:eq(plans.storageId,storageId)})}async getDevicePlans(deviceId){return await this.db.query.plans.findMany({where:eq(plans.sourceId,deviceId)})}handleBackupStats(method,backups,stats){return backups.map(backup=>{const{completionStats:backupCompStats,taskStats:backupTaskStats}=backup,backupStarted=backup.started?new Date(backup.started).getTime():0,backupEnded=backup.ended?new Date(backup.ended).getTime():0,taskStats=backupCompStats||backupTaskStats;return{...backup,totalFiles:backupTaskStats?.total_files_processed||0,totalSize:backupTaskStats?.total_bytes_processed||0,duration:Math.floor((backupEnded-backupStarted)/1e3),active:stats?.snapshots?.includes(backup.id)||!1,changes:{new:(taskStats?.files_new||0)+(taskStats?.dirs_new||0),modified:(taskStats?.files_changed||0)+(taskStats?.dirs_changed||0),removed:0}}})}async create(planData){return(await this.db.insert(plans).values({...planData,createdAt:sql`(unixepoch())`,isActive:!0,stats:{size:0,snapshots:[]}}).returning())[0]||null}async update(id,updates){const allowedFields=["title","isActive","inProgress","storagePath","sourceConfig","verified","lastBackupTime","tags","stats","settings"],updatedPlan=Object.fromEntries(Object.entries(updates).filter(([key])=>allowedFields.includes(key)));if(0===Object.keys(updatedPlan).length)return null;updatedPlan.settings?.scripts&&(updatedPlan.settings.scripts=await this.encryptScripts(updatedPlan.settings.scripts));return(await this.db.update(plans).set({...updatedPlan,updatedAt:sql`(unixepoch())`}).where(eq(plans.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(plans).where(eq(plans.id,id))).changes>0}async hasActiveBackups(planId){return(await this.db.select().from(backups).where(and(eq(backups.planId,planId),eq(backups.inProgress,!0))).limit(1)).length>0}async setActive(id,isActive){return this.update(id,{isActive:isActive})}async encryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const encryptedCommand=cryptr.encrypt(script.command);return{...script,command:encryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to encrypt Plan scripts")}}async decryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const decryptedCommand=cryptr.decrypt(script.command);return{...script,command:decryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to decrypt Plan scripts")}}}
1
+ import{eq}from"drizzle-orm";import{and,sql}from"drizzle-orm/sql";import{plans}from"../db/schema/plans";import{backups}from"../db/schema/backups";import Cryptr from"cryptr";import{configService}from"../services/ConfigService";import{restores}from"../db/schema/restores";export class PlanStore{db;constructor(db){this.db=db}async getAll(history=!0){const result=await this.db.query.plans.findMany({with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,completionStats:!0,taskStats:!0,inProgress:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});if(result){const plans=result.map(async plan=>(plan?.settings?.scripts&&(plan.settings.scripts=await this.decryptScripts(plan.settings.scripts)),{...plan,backups:this.handleBackupStats(plan.method,plan.backups,plan.stats)}));return Promise.all(plans)}return null}async getById(planId,history=!1){const thePlan=await this.db.query.plans.findFirst({where:eq(plans.id,planId),with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,inProgress:!0,completionStats:!0,taskStats:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,inProgress:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});return thePlan&&thePlan.backups&&(thePlan.backups=this.handleBackupStats(thePlan.method,thePlan.backups,thePlan.stats)),thePlan?.settings?.scripts&&(thePlan.settings.scripts=await this.decryptScripts(thePlan.settings.scripts)),thePlan||null}async getStoragePlans(storageId){return await this.db.query.plans.findMany({where:eq(plans.storageId,storageId)})}async getDevicePlans(deviceId){return await this.db.query.plans.findMany({where:eq(plans.sourceId,deviceId)})}handleBackupStats(method,backups,stats){return backups.map(backup=>{const{completionStats:backupCompStats,taskStats:backupTaskStats}=backup,backupStarted=backup.started?new Date(backup.started).getTime():0,backupEnded=backup.ended?new Date(backup.ended).getTime():0,taskStats=backupCompStats||backupTaskStats;return{...backup,totalFiles:backupTaskStats?.total_files_processed||0,totalSize:backupTaskStats?.total_bytes_processed||0,duration:Math.floor((backupEnded-backupStarted)/1e3),active:stats?.snapshots?.includes(backup.id)||!1,changes:{new:(taskStats?.files_new||0)+(taskStats?.dirs_new||0),modified:(taskStats?.files_changed||0)+(taskStats?.dirs_changed||0),removed:0}}})}async create(planData){return(await this.db.insert(plans).values({...planData,createdAt:sql`(unixepoch())`,isActive:!0,stats:{size:0,snapshots:[]}}).returning())[0]||null}async update(id,updates){const allowedFields=["title","description","isActive","inProgress","storagePath","sourceConfig","verified","lastBackupTime","tags","stats","settings"],updatedPlan=Object.fromEntries(Object.entries(updates).filter(([key])=>allowedFields.includes(key)));if(0===Object.keys(updatedPlan).length)return null;updatedPlan.settings?.scripts&&(updatedPlan.settings.scripts=await this.encryptScripts(updatedPlan.settings.scripts));return(await this.db.update(plans).set({...updatedPlan,updatedAt:sql`(unixepoch())`}).where(eq(plans.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(plans).where(eq(plans.id,id))).changes>0}async hasActiveBackups(planId){return(await this.db.select().from(backups).where(and(eq(backups.planId,planId),eq(backups.inProgress,!0))).limit(1)).length>0}async hasActiveRestore(planId){return(await this.db.select().from(restores).where(and(eq(restores.planId,planId),eq(restores.inProgress,!0))).limit(1)).length>0}async setActive(id,isActive){return this.update(id,{isActive:isActive})}async encryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const encryptedCommand=cryptr.encrypt(script.command);return{...script,command:encryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to encrypt Plan scripts")}}async decryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const decryptedCommand=cryptr.decrypt(script.command);return{...script,command:decryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to decrypt Plan scripts")}}}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanStore.js","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanStore.js","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { DatabaseType } from '../db';
2
2
  import { Settings, NewSettings } from '../db/schema/settings';
3
3
  import { AppSettings, IntegrationTypes } from '../types/settings';
4
+ import { INotificationChannelResolver } from '../types/notifications';
4
5
  /**
5
6
  * SettingsStore is a class for managing application settings records in the database.
6
7
  */
7
8
  export declare class SettingsStore {
8
- private db;
9
+ protected db: DatabaseType;
10
+ protected resolver: INotificationChannelResolver;
9
11
  constructor(db: DatabaseType);
10
12
  getFirst(): Promise<Settings | null>;
11
13
  getById(settingsId: number): Promise<Settings | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsStore.d.ts","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAY,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,WAAW,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1F;;GAEG;AACH,qBAAa,aAAa;IACb,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAE9B,QAAQ,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAWpC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAerD,MAAM,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAK3D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAiBlE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,yBAAyB,CAAC,WAAW,EAAE,WAAW;;;;;;gBArC7C,CAAC;oBAA2B,CAAC;mBAA8B,CAAC;iBAC/D,CAAC;kBACH,CAAC;kBAA2B,CAAC;gBACjC,CAAF;;;;;;;;;;oBAOgE,CAAC;;;;;;;;;;;;IA2C3D,yBAAyB,CAAC,WAAW,EAAE,WAAW;;;;;;gBArD7C,CAAC;oBAA2B,CAAC;mBAA8B,CAAC;iBAC/D,CAAC;kBACH,CAAC;kBAA2B,CAAC;gBACjC,CAAF;;;;;;;;;;oBAOgE,CAAC;;;;;;;;;;;;IA4DjE,OAAO,CAAC,6BAA6B;CA0CrC"}
1
+ {"version":3,"file":"SettingsStore.d.ts","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAY,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,WAAW,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE;;GAEG;AACH,qBAAa,aAAa;IAGb,SAAS,CAAC,EAAE,EAAE,YAAY;IAFtC,SAAS,CAAC,QAAQ,EAAE,4BAA4B,CAA+B;gBAEzD,EAAE,EAAE,YAAY;IAEhC,QAAQ,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAWpC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAerD,MAAM,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAK3D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAiBlE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,yBAAyB,CAAC,WAAW,EAAE,WAAW;;;;;;gBA1CvD,CAAF;oBAA4B,CAAA;mBAA8B,CAAC;iBACrC,CAAC;kBAGrB,CAAD;kBAA4B,CAAA;gBACP,CAAC;;;;;;;;;;oBAMrB,CAAF;;;;;;;;;;;;IA+CO,yBAAyB,CAAC,WAAW,EAAE,WAAW;;;;;;gBA1DvD,CAAF;oBAA4B,CAAA;mBAA8B,CAAC;iBACrC,CAAC;kBAGrB,CAAD;kBAA4B,CAAA;gBACP,CAAC;;;;;;;;;;oBAMrB,CAAF;;;;;;;;;;;;IAgEC,OAAO,CAAC,6BAA6B;CA0CrC"}
@@ -1 +1 @@
1
- import{eq}from"drizzle-orm";import{sql}from"drizzle-orm/sql";import{settings}from"../db/schema/settings";import{INTEGRATIONS_AVAILABLE}from"../types/settings";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";export class SettingsStore{db;constructor(db){this.db=db}async getFirst(){const appSettings=await this.db.query.settings.findFirst();if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async getById(settingsId){const appSettings=await this.db.query.settings.findFirst({where:eq(settings.id,settingsId)});if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async create(settingsData){return(await this.db.insert(settings).values(settingsData).returning())[0]||null}async update(id,updates){if(updates?.integration){const processedSettings=await this.encryptIntegrationSecrets(updates);processedSettings?.integration&&(updates.integration=processedSettings.integration),updates.integration=this.setIntegrationConnectedStatus(updates.integration)}return(await this.db.update(settings).set({settings:updates,updatedAt:sql`(unixepoch())`}).where(eq(settings.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(settings).where(eq(settings.id,id))).changes>0}async decryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=NotificationChannelResolver.decryptSecrets(theSettings.integration),theSettings}catch(error){}}async encryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=NotificationChannelResolver.encryptSecrets(theSettings.integration),theSettings}catch(error){}}setIntegrationConnectedStatus(integration){const validatedIntegration={...integration};return Object.keys(validatedIntegration).forEach(integrationType=>{const type=integrationType,integrationConfig=validatedIntegration[type];if(integrationConfig){const requiredFields=INTEGRATIONS_AVAILABLE[type].required,hasAllRequiredFields=(INTEGRATIONS_AVAILABLE[type].name,requiredFields.every(field=>{const value=integrationConfig[field];return null!=value&&""!==value}));hasAllRequiredFields||(validatedIntegration[type]={...integrationConfig,connected:!1}),"ntfy"===type&&hasAllRequiredFields&&(validatedIntegration[type]={...integrationConfig,connected:!0})}}),validatedIntegration}}
1
+ import{eq}from"drizzle-orm";import{sql}from"drizzle-orm/sql";import{settings}from"../db/schema/settings";import{INTEGRATIONS_AVAILABLE}from"../types/settings";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";export class SettingsStore{db;resolver=NotificationChannelResolver;constructor(db){this.db=db}async getFirst(){const appSettings=await this.db.query.settings.findFirst();if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async getById(settingsId){const appSettings=await this.db.query.settings.findFirst({where:eq(settings.id,settingsId)});if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async create(settingsData){return(await this.db.insert(settings).values(settingsData).returning())[0]||null}async update(id,updates){if(updates?.integration){const processedSettings=await this.encryptIntegrationSecrets(updates);processedSettings?.integration&&(updates.integration=processedSettings.integration),updates.integration=this.setIntegrationConnectedStatus(updates.integration)}return(await this.db.update(settings).set({settings:updates,updatedAt:sql`(unixepoch())`}).where(eq(settings.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(settings).where(eq(settings.id,id))).changes>0}async decryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=this.resolver.decryptSecrets(theSettings.integration),theSettings}catch(error){}}async encryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=this.resolver.encryptSecrets(theSettings.integration),theSettings}catch(error){}}setIntegrationConnectedStatus(integration){const validatedIntegration={...integration};return Object.keys(validatedIntegration).forEach(integrationType=>{const type=integrationType,integrationConfig=validatedIntegration[type];if(integrationConfig){const requiredFields=INTEGRATIONS_AVAILABLE[type].required,hasAllRequiredFields=(INTEGRATIONS_AVAILABLE[type].name,requiredFields.every(field=>{const value=integrationConfig[field];return null!=value&&""!==value}));hasAllRequiredFields||(validatedIntegration[type]={...integrationConfig,connected:!1}),"ntfy"===type&&hasAllRequiredFields&&(validatedIntegration[type]={...integrationConfig,connected:!0})}}),validatedIntegration}}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsStore.js","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsStore.js","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
1
  import { BackupTaskStats } from './backups';
2
+ import { NotificationChannel } from '../notifications/NotificationChannel';
3
+ import { AppSettings, IntegrationTypes } from './settings';
4
+ /**
5
+ * Interface for NotificationChannelResolver to allow extension in pro
6
+ */
7
+ export interface INotificationChannelResolver {
8
+ secretFields: string[];
9
+ getChannel(channelType?: IntegrationTypes): Promise<NotificationChannel>;
10
+ encryptSecrets(integration: AppSettings['integration']): AppSettings['integration'];
11
+ decryptSecrets(integration: AppSettings['integration']): AppSettings['integration'];
12
+ }
2
13
  export interface BackupNotificationData {
3
14
  planId: string;
4
15
  planName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/types/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC5B"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/types/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzE,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACpF,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC5B"}
@@ -36,6 +36,7 @@ declare class AppPaths {
36
36
  getStatsDir(): string;
37
37
  getTempDir(): string;
38
38
  getDownloadsDir(): string;
39
+ getCacheDir(): string;
39
40
  getRestoresDir(): string;
40
41
  getSyncDir(): string;
41
42
  getConfigDir(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"AppPaths.d.ts","sourceRoot":"","sources":["../../src/utils/AppPaths.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,cAAM,QAAQ;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO;WAIO,WAAW,IAAI,QAAQ;IAOrC;;OAEG;IACH,OAAO,CAAC,aAAa;IA4BrB;;;OAGG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;;OAGG;IACI,cAAc,IAAI,MAAM;IAW/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiEtB,OAAO,CAAC,gBAAgB;IAQjB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,gBAAgB,IAAI,MAAM;IAI1B,UAAU,IAAI,MAAM;IAIpB,cAAc,IAAI,MAAM;IAIxB,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;IAIpB,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,MAAM;IAIxB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;IAKtB,YAAY,IAAI,MAAM;CAI7B;AAID,eAAO,MAAM,QAAQ,UAAyB,CAAC"}
1
+ {"version":3,"file":"AppPaths.d.ts","sourceRoot":"","sources":["../../src/utils/AppPaths.ts"],"names":[],"mappings":"AA0BA;;GAEG;AACH,cAAM,QAAQ;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO;WAIO,WAAW,IAAI,QAAQ;IAOrC;;OAEG;IACH,OAAO,CAAC,aAAa;IA4BrB;;;OAGG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;;OAGG;IACI,cAAc,IAAI,MAAM;IAW/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmEtB,OAAO,CAAC,gBAAgB;IAQjB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,gBAAgB,IAAI,MAAM;IAI1B,UAAU,IAAI,MAAM;IAIpB,cAAc,IAAI,MAAM;IAIxB,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;IAIpB,eAAe,IAAI,MAAM;IAIzB,WAAW,IAAI,MAAM;IAIrB,cAAc,IAAI,MAAM;IAIxB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;IAKtB,YAAY,IAAI,MAAM;CAI7B;AAID,eAAO,MAAM,QAAQ,UAAyB,CAAC"}
@@ -1 +1 @@
1
- import path from"path";import os from"os";import fs from"fs";class AppPaths{static instance;paths;isInitialized=!1;constructor(){this.initializeSync()}static getInstance(){return AppPaths.instance||(AppPaths.instance=new AppPaths),AppPaths.instance}getTheBaseDir(){if(!process.pkg&&"production"!==process.env.NODE_ENV)return path.join(process.cwd(),"data");if("true"===process.env.IS_DOCKER)return"/data";if(process.env.PLUTON_DATA_DIR)return process.env.PLUTON_DATA_DIR;return"win32"===os.platform()?path.join(process.env.PROGRAMDATA||"C:\\ProgramData","Pluton"):path.join("/var/lib","Pluton".toLowerCase())}getExecutableDir(){return path.dirname(process.execPath)}getBinariesDir(){if(process.pkg){const platformId=`${os.platform()}-${os.arch()}`;return path.join(this.getExecutableDir(),"binaries",platformId)}const platformId=`${os.platform()}-${os.arch()}`;return path.join(process.cwd(),"binaries",platformId)}initializeSync(){if(this.isInitialized)return;const baseDir=this.getTheBaseDir(),tempBase=os.tmpdir();this.paths={base:baseDir,data:baseDir,db:path.join(baseDir,"db"),schedules:path.join(baseDir,"schedules.json"),logs:path.join(baseDir,"logs"),progress:path.join(baseDir,"progress"),stats:path.join(baseDir,"stats"),temp:path.join(tempBase,"pluton"),downloads:path.join(tempBase,"pluton","downloads"),restores:path.join(tempBase,"pluton","restores"),sync:path.join(baseDir,"sync"),config:path.join(baseDir,"config"),rescue:path.join(baseDir,"rescue")};const directoriesToCreate=[this.paths.base,this.paths.db,this.paths.logs,this.paths.progress,this.paths.stats,this.paths.temp,this.paths.downloads,this.paths.restores,this.paths.sync,this.paths.config,this.paths.rescue];for(const dir of directoriesToCreate)try{fs.mkdirSync(dir,{recursive:!0})}catch(error){if("EEXIST"!==error.code)throw error}const rcloneConfPath=path.join(this.paths.config,"rclone.conf");if(!fs.existsSync(rcloneConfPath))try{fs.writeFileSync(rcloneConfPath,"",{mode:384})}catch(error){throw error}this.isInitialized=!0}checkInitialized(){if(!this.isInitialized)throw new Error("AppPaths failed to initialize.")}getBaseDir(){return this.checkInitialized(),this.paths.base}getDataDir(){return this.checkInitialized(),this.paths.data}getDbDir(){return this.checkInitialized(),this.paths.db}getSchedulesPath(){return this.checkInitialized(),this.paths.schedules}getLogsDir(){return this.checkInitialized(),this.paths.logs}getProgressDir(){return this.checkInitialized(),this.paths.progress}getStatsDir(){return this.checkInitialized(),this.paths.stats}getTempDir(){return this.checkInitialized(),this.paths.temp}getDownloadsDir(){return this.checkInitialized(),this.paths.downloads}getRestoresDir(){return this.checkInitialized(),this.paths.restores}getSyncDir(){return this.checkInitialized(),this.paths.sync}getConfigDir(){return this.checkInitialized(),this.paths.config}getRescueDir(){return this.checkInitialized(),this.paths.rescue}}export const appPaths=AppPaths.getInstance();
1
+ import path from"path";import os from"os";import fs from"fs";class AppPaths{static instance;paths;isInitialized=!1;constructor(){this.initializeSync()}static getInstance(){return AppPaths.instance||(AppPaths.instance=new AppPaths),AppPaths.instance}getTheBaseDir(){if(!process.pkg&&"production"!==process.env.NODE_ENV)return path.join(process.cwd(),"data");if("true"===process.env.IS_DOCKER)return"/data";if(process.env.PLUTON_DATA_DIR)return process.env.PLUTON_DATA_DIR;return"win32"===os.platform()?path.join(process.env.PROGRAMDATA||"C:\\ProgramData","Pluton"):path.join("/var/lib","Pluton".toLowerCase())}getExecutableDir(){return path.dirname(process.execPath)}getBinariesDir(){if(process.pkg){const platformId=`${os.platform()}-${os.arch()}`;return path.join(this.getExecutableDir(),"binaries",platformId)}const platformId=`${os.platform()}-${os.arch()}`;return path.join(process.cwd(),"binaries",platformId)}initializeSync(){if(this.isInitialized)return;const baseDir=this.getTheBaseDir(),tempBase=os.tmpdir();this.paths={base:baseDir,data:baseDir,db:path.join(baseDir,"db"),schedules:path.join(baseDir,"schedules.json"),logs:path.join(baseDir,"logs"),progress:path.join(baseDir,"progress"),stats:path.join(baseDir,"stats"),temp:path.join(tempBase,"pluton"),cache:path.join(tempBase,"pluton","cache"),downloads:path.join(tempBase,"pluton","downloads"),restores:path.join(tempBase,"pluton","restores"),sync:path.join(baseDir,"sync"),config:path.join(baseDir,"config"),rescue:path.join(baseDir,"rescue")};const directoriesToCreate=[this.paths.base,this.paths.db,this.paths.logs,this.paths.progress,this.paths.stats,this.paths.temp,this.paths.cache,this.paths.downloads,this.paths.restores,this.paths.sync,this.paths.config,this.paths.rescue];for(const dir of directoriesToCreate)try{fs.mkdirSync(dir,{recursive:!0})}catch(error){if("EEXIST"!==error.code)throw error}const rcloneConfPath=path.join(this.paths.config,"rclone.conf");if(!fs.existsSync(rcloneConfPath))try{fs.writeFileSync(rcloneConfPath,"",{mode:384})}catch(error){throw error}this.isInitialized=!0}checkInitialized(){if(!this.isInitialized)throw new Error("AppPaths failed to initialize.")}getBaseDir(){return this.checkInitialized(),this.paths.base}getDataDir(){return this.checkInitialized(),this.paths.data}getDbDir(){return this.checkInitialized(),this.paths.db}getSchedulesPath(){return this.checkInitialized(),this.paths.schedules}getLogsDir(){return this.checkInitialized(),this.paths.logs}getProgressDir(){return this.checkInitialized(),this.paths.progress}getStatsDir(){return this.checkInitialized(),this.paths.stats}getTempDir(){return this.checkInitialized(),this.paths.temp}getDownloadsDir(){return this.checkInitialized(),this.paths.downloads}getCacheDir(){return this.checkInitialized(),this.paths.cache}getRestoresDir(){return this.checkInitialized(),this.paths.restores}getSyncDir(){return this.checkInitialized(),this.paths.sync}getConfigDir(){return this.checkInitialized(),this.paths.config}getRescueDir(){return this.checkInitialized(),this.paths.rescue}}export const appPaths=AppPaths.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"AppPaths.js","sourceRoot":"","sources":["../../src/utils/AppPaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppPaths.js","sourceRoot":"","sources":["../../src/utils/AppPaths.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@plutonhq/core-backend",
3
3
  "description": "Pluton Core Backend Library",
4
- "version": "0.1.0",
4
+ "version": "0.1.2",
5
5
  "author": "plutonhq",
6
6
  "license": "Apache-2.0",
7
7
  "publishConfig": {
@@ -98,14 +98,15 @@
98
98
  "public/**/*",
99
99
  "node_modules/**/*",
100
100
  "!node_modules/better-sqlite3/**/*",
101
- "drizzle/**/*"
101
+ "drizzle/**/*",
102
+ "src/notifications/templates/**/*"
102
103
  ]
103
104
  },
104
105
  "scripts": {
105
106
  "checkUpdates": "npx npm-check -u",
106
107
  "db:studio": "npx drizzle-kit studio --port 4983",
107
108
  "dev": "cross-env NODE_ENV=development tsx watch -r dotenv/config src/index.ts",
108
- "generate-migration": "drizzle-kit generate:sqlite",
109
+ "generate-migration": "npx drizzle-kit generate",
109
110
  "lint": "eslint src/**/*.ts",
110
111
  "migrate-db": "tsx -r dotenv/config src/db/migrate.ts",
111
112
  "start": "node dist/index.js",