@minecraft-docker/shared 2.14.0 → 2.15.0

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 (63) hide show
  1. package/dist/application/ports/inbound/IBackupScheduleUseCase.d.ts +59 -0
  2. package/dist/application/ports/inbound/IBackupScheduleUseCase.d.ts.map +1 -0
  3. package/dist/application/ports/inbound/IBackupScheduleUseCase.js +2 -0
  4. package/dist/application/ports/inbound/IBackupScheduleUseCase.js.map +1 -0
  5. package/dist/application/ports/inbound/index.d.ts +1 -0
  6. package/dist/application/ports/inbound/index.d.ts.map +1 -1
  7. package/dist/application/ports/index.d.ts +2 -2
  8. package/dist/application/ports/index.d.ts.map +1 -1
  9. package/dist/application/ports/outbound/IBackupScheduleRepository.d.ts +28 -0
  10. package/dist/application/ports/outbound/IBackupScheduleRepository.d.ts.map +1 -0
  11. package/dist/application/ports/outbound/IBackupScheduleRepository.js +2 -0
  12. package/dist/application/ports/outbound/IBackupScheduleRepository.js.map +1 -0
  13. package/dist/application/ports/outbound/index.d.ts +1 -0
  14. package/dist/application/ports/outbound/index.d.ts.map +1 -1
  15. package/dist/application/use-cases/BackupScheduleUseCase.d.ts +20 -0
  16. package/dist/application/use-cases/BackupScheduleUseCase.d.ts.map +1 -0
  17. package/dist/application/use-cases/BackupScheduleUseCase.js +89 -0
  18. package/dist/application/use-cases/BackupScheduleUseCase.js.map +1 -0
  19. package/dist/application/use-cases/index.d.ts +1 -0
  20. package/dist/application/use-cases/index.d.ts.map +1 -1
  21. package/dist/application/use-cases/index.js +1 -0
  22. package/dist/application/use-cases/index.js.map +1 -1
  23. package/dist/domain/entities/BackupSchedule.d.ts +97 -0
  24. package/dist/domain/entities/BackupSchedule.d.ts.map +1 -0
  25. package/dist/domain/entities/BackupSchedule.js +172 -0
  26. package/dist/domain/entities/BackupSchedule.js.map +1 -0
  27. package/dist/domain/entities/index.d.ts +1 -0
  28. package/dist/domain/entities/index.d.ts.map +1 -1
  29. package/dist/domain/entities/index.js +1 -0
  30. package/dist/domain/entities/index.js.map +1 -1
  31. package/dist/domain/index.d.ts +2 -2
  32. package/dist/domain/index.d.ts.map +1 -1
  33. package/dist/domain/index.js +4 -2
  34. package/dist/domain/index.js.map +1 -1
  35. package/dist/domain/value-objects/AuditAction.d.ts +7 -1
  36. package/dist/domain/value-objects/AuditAction.d.ts.map +1 -1
  37. package/dist/domain/value-objects/AuditAction.js +7 -0
  38. package/dist/domain/value-objects/AuditAction.js.map +1 -1
  39. package/dist/domain/value-objects/BackupRetentionPolicy.d.ts +30 -0
  40. package/dist/domain/value-objects/BackupRetentionPolicy.d.ts.map +1 -0
  41. package/dist/domain/value-objects/BackupRetentionPolicy.js +67 -0
  42. package/dist/domain/value-objects/BackupRetentionPolicy.js.map +1 -0
  43. package/dist/domain/value-objects/CronExpression.d.ts +33 -0
  44. package/dist/domain/value-objects/CronExpression.d.ts.map +1 -0
  45. package/dist/domain/value-objects/CronExpression.js +145 -0
  46. package/dist/domain/value-objects/CronExpression.js.map +1 -0
  47. package/dist/domain/value-objects/index.d.ts +2 -0
  48. package/dist/domain/value-objects/index.d.ts.map +1 -1
  49. package/dist/domain/value-objects/index.js +3 -0
  50. package/dist/domain/value-objects/index.js.map +1 -1
  51. package/dist/index.d.ts +1 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +3 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/infrastructure/adapters/SqliteBackupScheduleRepository.d.ts +43 -0
  56. package/dist/infrastructure/adapters/SqliteBackupScheduleRepository.d.ts.map +1 -0
  57. package/dist/infrastructure/adapters/SqliteBackupScheduleRepository.js +111 -0
  58. package/dist/infrastructure/adapters/SqliteBackupScheduleRepository.js.map +1 -0
  59. package/dist/infrastructure/adapters/index.d.ts +1 -0
  60. package/dist/infrastructure/adapters/index.d.ts.map +1 -1
  61. package/dist/infrastructure/adapters/index.js +1 -0
  62. package/dist/infrastructure/adapters/index.js.map +1 -1
  63. package/package.json +1 -1
@@ -0,0 +1,59 @@
1
+ import type { BackupSchedule } from '../../../domain/entities/BackupSchedule.js';
2
+ /**
3
+ * Parameters for creating a backup schedule
4
+ */
5
+ export interface CreateBackupScheduleParams {
6
+ name: string;
7
+ cron: string;
8
+ maxCount?: number;
9
+ maxAgeDays?: number;
10
+ enabled?: boolean;
11
+ }
12
+ /**
13
+ * Parameters for updating a backup schedule
14
+ */
15
+ export interface UpdateBackupScheduleParams {
16
+ name?: string;
17
+ cron?: string;
18
+ maxCount?: number;
19
+ maxAgeDays?: number;
20
+ }
21
+ /**
22
+ * IBackupScheduleUseCase - Inbound Port
23
+ * Manages backup schedule CRUD and lifecycle operations
24
+ */
25
+ export interface IBackupScheduleUseCase {
26
+ /**
27
+ * Create a new backup schedule
28
+ */
29
+ create(params: CreateBackupScheduleParams): Promise<BackupSchedule>;
30
+ /**
31
+ * Find all backup schedules
32
+ */
33
+ findAll(): Promise<BackupSchedule[]>;
34
+ /**
35
+ * Find a backup schedule by ID
36
+ */
37
+ findById(id: string): Promise<BackupSchedule | null>;
38
+ /**
39
+ * Update a backup schedule
40
+ */
41
+ update(id: string, params: UpdateBackupScheduleParams): Promise<BackupSchedule>;
42
+ /**
43
+ * Remove a backup schedule
44
+ */
45
+ remove(id: string): Promise<void>;
46
+ /**
47
+ * Enable a backup schedule
48
+ */
49
+ enable(id: string): Promise<BackupSchedule>;
50
+ /**
51
+ * Disable a backup schedule
52
+ */
53
+ disable(id: string): Promise<BackupSchedule>;
54
+ /**
55
+ * Record a backup run result
56
+ */
57
+ recordRun(id: string, status: 'success' | 'failure', message?: string): Promise<BackupSchedule>;
58
+ }
59
+ //# sourceMappingURL=IBackupScheduleUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBackupScheduleUseCase.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/inbound/IBackupScheduleUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpE;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhF;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7C;;OAEG;IACH,SAAS,CACP,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IBackupScheduleUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBackupScheduleUseCase.js","sourceRoot":"","sources":["../../../../src/application/ports/inbound/IBackupScheduleUseCase.ts"],"names":[],"mappings":""}
@@ -4,4 +4,5 @@ export type { IServerStatusUseCase, ServerStatusResult } from './IServerStatusUs
4
4
  export type { IWorldManagementUseCase, WorldListResult, WorldAssignResult, WorldReleaseResult, WorldDeleteResult, WorldCreateOptions, WorldCreateResult, } from './IWorldManagementUseCase.js';
5
5
  export type { IBackupUseCase, BackupInitResult, BackupPushResult, BackupStatusResult, BackupHistoryResult, BackupRestoreResult, } from './IBackupUseCase.js';
6
6
  export type { IPlayerLookupUseCase, PlayerLookupResult, PlayerNameHistory, PlayerUuidResult, } from './IPlayerLookupUseCase.js';
7
+ export type { IBackupScheduleUseCase, CreateBackupScheduleParams, UpdateBackupScheduleParams, } from './IBackupScheduleUseCase.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/inbound/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/inbound/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC"}
@@ -1,3 +1,3 @@
1
- export type { ICreateServerUseCase, CreateServerConfig, IDeleteServerUseCase, DeleteServerResult, IServerStatusUseCase, ServerStatusResult, IWorldManagementUseCase, WorldListResult, WorldAssignResult, WorldReleaseResult, WorldDeleteResult, WorldCreateOptions, WorldCreateResult, IBackupUseCase, BackupInitResult, BackupPushResult, BackupStatusResult, BackupHistoryResult, BackupRestoreResult, IPlayerLookupUseCase, PlayerLookupResult, PlayerNameHistory, PlayerUuidResult, } from './inbound/index.js';
2
- export type { IPromptPort, TextPromptOptions, SelectPromptOptions, SelectOption, ConfirmPromptOptions, PasswordPromptOptions, Spinner, IShellPort, CreateServerOptions, LogsOptions, ShellResult, IDocProvider, DocServerTypeInfo, DocEnvVarInfo, DocVersionInfo, DocMemoryInfo, IServerRepository, ServerConfigData, IWorldRepository, WorldLockData, WorldWithServerStatus, ServerStatus, WorldAvailabilityCategory, IModSourcePort, IUserRepository, IServiceManagerPort, ServiceStartOptions, ServiceStopOptions, ServiceRestartOptions, ServiceLogsOptions, IAuditLogPort, AuditLogQueryOptions, } from './outbound/index.js';
1
+ export type { ICreateServerUseCase, CreateServerConfig, IDeleteServerUseCase, DeleteServerResult, IServerStatusUseCase, ServerStatusResult, IWorldManagementUseCase, WorldListResult, WorldAssignResult, WorldReleaseResult, WorldDeleteResult, WorldCreateOptions, WorldCreateResult, IBackupUseCase, BackupInitResult, BackupPushResult, BackupStatusResult, BackupHistoryResult, BackupRestoreResult, IPlayerLookupUseCase, PlayerLookupResult, PlayerNameHistory, PlayerUuidResult, IBackupScheduleUseCase, CreateBackupScheduleParams, UpdateBackupScheduleParams, } from './inbound/index.js';
2
+ export type { IPromptPort, TextPromptOptions, SelectPromptOptions, SelectOption, ConfirmPromptOptions, PasswordPromptOptions, Spinner, IShellPort, CreateServerOptions, LogsOptions, ShellResult, IDocProvider, DocServerTypeInfo, DocEnvVarInfo, DocVersionInfo, DocMemoryInfo, IServerRepository, ServerConfigData, IWorldRepository, WorldLockData, WorldWithServerStatus, ServerStatus, WorldAvailabilityCategory, IModSourcePort, IUserRepository, IServiceManagerPort, ServiceStartOptions, ServiceStopOptions, ServiceRestartOptions, ServiceLogsOptions, IAuditLogPort, AuditLogQueryOptions, IBackupScheduleRepository, } from './outbound/index.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/ports/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/ports/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { BackupSchedule } from '../../../domain/entities/BackupSchedule.js';
2
+ /**
3
+ * IBackupScheduleRepository - Outbound Port
4
+ * Port interface for backup schedule persistence
5
+ */
6
+ export interface IBackupScheduleRepository {
7
+ /**
8
+ * Save (insert or update) a backup schedule
9
+ */
10
+ save(schedule: BackupSchedule): Promise<void>;
11
+ /**
12
+ * Find all backup schedules
13
+ */
14
+ findAll(): Promise<BackupSchedule[]>;
15
+ /**
16
+ * Find a backup schedule by ID
17
+ */
18
+ findById(id: string): Promise<BackupSchedule | null>;
19
+ /**
20
+ * Find all enabled backup schedules
21
+ */
22
+ findEnabled(): Promise<BackupSchedule[]>;
23
+ /**
24
+ * Delete a backup schedule by ID
25
+ */
26
+ delete(id: string): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=IBackupScheduleRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBackupScheduleRepository.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IBackupScheduleRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IBackupScheduleRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBackupScheduleRepository.js","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IBackupScheduleRepository.ts"],"names":[],"mappings":""}
@@ -8,4 +8,5 @@ export type { IUserRepository } from './IUserRepository.js';
8
8
  export type { IServiceManagerPort, ServiceStartOptions, ServiceStopOptions, ServiceRestartOptions, ServiceLogsOptions, } from './IServiceManagerPort.js';
9
9
  export type { IAuditLogPort, AuditLogQueryOptions } from './IAuditLogPort.js';
10
10
  export type { IOperatorPort } from './IOperatorPort.js';
11
+ export type { IBackupScheduleRepository } from './IBackupScheduleRepository.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/outbound/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/outbound/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { BackupSchedule } from '../../domain/entities/BackupSchedule.js';
2
+ import type { IBackupScheduleUseCase, CreateBackupScheduleParams, UpdateBackupScheduleParams } from '../ports/inbound/IBackupScheduleUseCase.js';
3
+ import type { IBackupScheduleRepository } from '../ports/outbound/IBackupScheduleRepository.js';
4
+ /**
5
+ * BackupScheduleUseCase
6
+ * Implements backup schedule CRUD operations
7
+ */
8
+ export declare class BackupScheduleUseCase implements IBackupScheduleUseCase {
9
+ private readonly repository;
10
+ constructor(repository: IBackupScheduleRepository);
11
+ create(params: CreateBackupScheduleParams): Promise<BackupSchedule>;
12
+ findAll(): Promise<BackupSchedule[]>;
13
+ findById(id: string): Promise<BackupSchedule | null>;
14
+ update(id: string, params: UpdateBackupScheduleParams): Promise<BackupSchedule>;
15
+ remove(id: string): Promise<void>;
16
+ enable(id: string): Promise<BackupSchedule>;
17
+ disable(id: string): Promise<BackupSchedule>;
18
+ recordRun(id: string, status: 'success' | 'failure', message?: string): Promise<BackupSchedule>;
19
+ }
20
+ //# sourceMappingURL=BackupScheduleUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupScheduleUseCase.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/BackupScheduleUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAEhG;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IAEhE,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,yBAAyB;IAGlD,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;IAenE,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIpC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIpD,MAAM,CACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,cAAc,CAAC;IA2BpB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAW3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAW5C,SAAS,CACb,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;CAU3B"}
@@ -0,0 +1,89 @@
1
+ import { BackupSchedule } from '../../domain/entities/BackupSchedule.js';
2
+ /**
3
+ * BackupScheduleUseCase
4
+ * Implements backup schedule CRUD operations
5
+ */
6
+ export class BackupScheduleUseCase {
7
+ repository;
8
+ constructor(repository) {
9
+ this.repository = repository;
10
+ }
11
+ async create(params) {
12
+ const schedule = BackupSchedule.create({
13
+ name: params.name,
14
+ cronExpression: params.cron,
15
+ retentionPolicy: {
16
+ maxCount: params.maxCount,
17
+ maxAgeDays: params.maxAgeDays,
18
+ },
19
+ enabled: params.enabled,
20
+ });
21
+ await this.repository.save(schedule);
22
+ return schedule;
23
+ }
24
+ async findAll() {
25
+ return this.repository.findAll();
26
+ }
27
+ async findById(id) {
28
+ return this.repository.findById(id);
29
+ }
30
+ async update(id, params) {
31
+ const existing = await this.repository.findById(id);
32
+ if (!existing) {
33
+ throw new Error(`Backup schedule not found: ${id}`);
34
+ }
35
+ // Rebuild schedule with updated fields
36
+ const updated = BackupSchedule.create({
37
+ id: existing.id,
38
+ name: params.name ?? existing.name,
39
+ cronExpression: params.cron ?? existing.cronExpression.expression,
40
+ retentionPolicy: {
41
+ maxCount: params.maxCount ?? existing.retentionPolicy.maxCount,
42
+ maxAgeDays: params.maxAgeDays ?? existing.retentionPolicy.maxAgeDays,
43
+ },
44
+ enabled: existing.enabled,
45
+ lastRunAt: existing.lastRunAt,
46
+ lastRunStatus: existing.lastRunStatus,
47
+ lastRunMessage: existing.lastRunMessage,
48
+ createdAt: existing.createdAt,
49
+ updatedAt: new Date(),
50
+ });
51
+ await this.repository.save(updated);
52
+ return updated;
53
+ }
54
+ async remove(id) {
55
+ const existing = await this.repository.findById(id);
56
+ if (!existing) {
57
+ throw new Error(`Backup schedule not found: ${id}`);
58
+ }
59
+ await this.repository.delete(id);
60
+ }
61
+ async enable(id) {
62
+ const existing = await this.repository.findById(id);
63
+ if (!existing) {
64
+ throw new Error(`Backup schedule not found: ${id}`);
65
+ }
66
+ const enabled = existing.enable();
67
+ await this.repository.save(enabled);
68
+ return enabled;
69
+ }
70
+ async disable(id) {
71
+ const existing = await this.repository.findById(id);
72
+ if (!existing) {
73
+ throw new Error(`Backup schedule not found: ${id}`);
74
+ }
75
+ const disabled = existing.disable();
76
+ await this.repository.save(disabled);
77
+ return disabled;
78
+ }
79
+ async recordRun(id, status, message) {
80
+ const existing = await this.repository.findById(id);
81
+ if (!existing) {
82
+ throw new Error(`Backup schedule not found: ${id}`);
83
+ }
84
+ const updated = existing.recordRun(status, message);
85
+ await this.repository.save(updated);
86
+ return updated;
87
+ }
88
+ }
89
+ //# sourceMappingURL=BackupScheduleUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupScheduleUseCase.js","sourceRoot":"","sources":["../../../src/application/use-cases/BackupScheduleUseCase.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export { ServerStatusUseCase } from './ServerStatusUseCase.js';
4
4
  export { WorldManagementUseCase } from './WorldManagementUseCase.js';
5
5
  export { BackupUseCase } from './BackupUseCase.js';
6
6
  export { PlayerLookupUseCase } from './PlayerLookupUseCase.js';
7
+ export { BackupScheduleUseCase } from './BackupScheduleUseCase.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -4,4 +4,5 @@ export { ServerStatusUseCase } from './ServerStatusUseCase.js';
4
4
  export { WorldManagementUseCase } from './WorldManagementUseCase.js';
5
5
  export { BackupUseCase } from './BackupUseCase.js';
6
6
  export { PlayerLookupUseCase } from './PlayerLookupUseCase.js';
7
+ export { BackupScheduleUseCase } from './BackupScheduleUseCase.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/use-cases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/use-cases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { CronExpression } from '../value-objects/CronExpression.js';
2
+ import { BackupRetentionPolicy, type BackupRetentionPolicyData } from '../value-objects/BackupRetentionPolicy.js';
3
+ /**
4
+ * BackupSchedule entity data for construction
5
+ */
6
+ export interface BackupScheduleData {
7
+ id?: string;
8
+ name: string;
9
+ cronExpression: string;
10
+ retentionPolicy?: BackupRetentionPolicyData;
11
+ enabled?: boolean;
12
+ lastRunAt?: Date | null;
13
+ lastRunStatus?: 'success' | 'failure' | null;
14
+ lastRunMessage?: string | null;
15
+ createdAt?: Date;
16
+ updatedAt?: Date;
17
+ }
18
+ /**
19
+ * Database row structure for backup_schedules table
20
+ */
21
+ export interface BackupScheduleRow {
22
+ id: string;
23
+ name: string;
24
+ cron_expression: string;
25
+ retention_max_count: number | null;
26
+ retention_max_age_days: number | null;
27
+ enabled: number;
28
+ last_run_at: string | null;
29
+ last_run_status: string | null;
30
+ last_run_message: string | null;
31
+ created_at: string;
32
+ updated_at: string;
33
+ }
34
+ /**
35
+ * BackupSchedule Entity
36
+ * Represents a scheduled backup configuration
37
+ */
38
+ export declare class BackupSchedule {
39
+ private readonly _id;
40
+ private readonly _name;
41
+ private readonly _cronExpression;
42
+ private readonly _retentionPolicy;
43
+ private readonly _enabled;
44
+ private readonly _lastRunAt;
45
+ private readonly _lastRunStatus;
46
+ private readonly _lastRunMessage;
47
+ private readonly _createdAt;
48
+ private readonly _updatedAt;
49
+ private constructor();
50
+ get id(): string;
51
+ get name(): string;
52
+ get cronExpression(): CronExpression;
53
+ get retentionPolicy(): BackupRetentionPolicy;
54
+ get enabled(): boolean;
55
+ get lastRunAt(): Date | null;
56
+ get lastRunStatus(): 'success' | 'failure' | null;
57
+ get lastRunMessage(): string | null;
58
+ get createdAt(): Date;
59
+ get updatedAt(): Date;
60
+ /**
61
+ * Create a new BackupSchedule entity
62
+ */
63
+ static create(data: BackupScheduleData): BackupSchedule;
64
+ /**
65
+ * Create a BackupSchedule from a database row
66
+ */
67
+ static fromRaw(row: BackupScheduleRow): BackupSchedule;
68
+ /**
69
+ * Return a new BackupSchedule with enabled = true
70
+ */
71
+ enable(): BackupSchedule;
72
+ /**
73
+ * Return a new BackupSchedule with enabled = false
74
+ */
75
+ disable(): BackupSchedule;
76
+ /**
77
+ * Return a new BackupSchedule with the run recorded
78
+ */
79
+ recordRun(status: 'success' | 'failure', message?: string): BackupSchedule;
80
+ /**
81
+ * Convert to plain object for serialization
82
+ */
83
+ toJSON(): {
84
+ id: string;
85
+ name: string;
86
+ cronExpression: string;
87
+ cronHumanReadable: string;
88
+ retentionPolicy: BackupRetentionPolicyData;
89
+ enabled: boolean;
90
+ lastRunAt: string | null;
91
+ lastRunStatus: 'success' | 'failure' | null;
92
+ lastRunMessage: string | null;
93
+ createdAt: string;
94
+ updatedAt: string;
95
+ };
96
+ }
97
+ //# sourceMappingURL=BackupSchedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupSchedule.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/BackupSchedule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { CronExpression } from '../value-objects/CronExpression.js';
3
+ import { BackupRetentionPolicy, } from '../value-objects/BackupRetentionPolicy.js';
4
+ /**
5
+ * BackupSchedule Entity
6
+ * Represents a scheduled backup configuration
7
+ */
8
+ export class BackupSchedule {
9
+ _id;
10
+ _name;
11
+ _cronExpression;
12
+ _retentionPolicy;
13
+ _enabled;
14
+ _lastRunAt;
15
+ _lastRunStatus;
16
+ _lastRunMessage;
17
+ _createdAt;
18
+ _updatedAt;
19
+ constructor(data) {
20
+ this._id = data.id;
21
+ this._name = data.name;
22
+ this._cronExpression = data.cronExpression;
23
+ this._retentionPolicy = data.retentionPolicy;
24
+ this._enabled = data.enabled;
25
+ this._lastRunAt = data.lastRunAt;
26
+ this._lastRunStatus = data.lastRunStatus;
27
+ this._lastRunMessage = data.lastRunMessage;
28
+ this._createdAt = data.createdAt;
29
+ this._updatedAt = data.updatedAt;
30
+ }
31
+ // Getters
32
+ get id() {
33
+ return this._id;
34
+ }
35
+ get name() {
36
+ return this._name;
37
+ }
38
+ get cronExpression() {
39
+ return this._cronExpression;
40
+ }
41
+ get retentionPolicy() {
42
+ return this._retentionPolicy;
43
+ }
44
+ get enabled() {
45
+ return this._enabled;
46
+ }
47
+ get lastRunAt() {
48
+ return this._lastRunAt;
49
+ }
50
+ get lastRunStatus() {
51
+ return this._lastRunStatus;
52
+ }
53
+ get lastRunMessage() {
54
+ return this._lastRunMessage;
55
+ }
56
+ get createdAt() {
57
+ return this._createdAt;
58
+ }
59
+ get updatedAt() {
60
+ return this._updatedAt;
61
+ }
62
+ /**
63
+ * Create a new BackupSchedule entity
64
+ */
65
+ static create(data) {
66
+ const now = new Date();
67
+ return new BackupSchedule({
68
+ id: data.id ?? randomUUID(),
69
+ name: data.name,
70
+ cronExpression: CronExpression.create(data.cronExpression),
71
+ retentionPolicy: data.retentionPolicy
72
+ ? BackupRetentionPolicy.create(data.retentionPolicy)
73
+ : BackupRetentionPolicy.default(),
74
+ enabled: data.enabled ?? true,
75
+ lastRunAt: data.lastRunAt ?? null,
76
+ lastRunStatus: data.lastRunStatus ?? null,
77
+ lastRunMessage: data.lastRunMessage ?? null,
78
+ createdAt: data.createdAt ?? now,
79
+ updatedAt: data.updatedAt ?? now,
80
+ });
81
+ }
82
+ /**
83
+ * Create a BackupSchedule from a database row
84
+ */
85
+ static fromRaw(row) {
86
+ return new BackupSchedule({
87
+ id: row.id,
88
+ name: row.name,
89
+ cronExpression: CronExpression.create(row.cron_expression),
90
+ retentionPolicy: BackupRetentionPolicy.create({
91
+ maxCount: row.retention_max_count ?? undefined,
92
+ maxAgeDays: row.retention_max_age_days ?? undefined,
93
+ }),
94
+ enabled: row.enabled === 1,
95
+ lastRunAt: row.last_run_at ? new Date(row.last_run_at) : null,
96
+ lastRunStatus: row.last_run_status,
97
+ lastRunMessage: row.last_run_message,
98
+ createdAt: new Date(row.created_at),
99
+ updatedAt: new Date(row.updated_at),
100
+ });
101
+ }
102
+ /**
103
+ * Return a new BackupSchedule with enabled = true
104
+ */
105
+ enable() {
106
+ return new BackupSchedule({
107
+ id: this._id,
108
+ name: this._name,
109
+ cronExpression: this._cronExpression,
110
+ retentionPolicy: this._retentionPolicy,
111
+ enabled: true,
112
+ lastRunAt: this._lastRunAt,
113
+ lastRunStatus: this._lastRunStatus,
114
+ lastRunMessage: this._lastRunMessage,
115
+ createdAt: this._createdAt,
116
+ updatedAt: new Date(),
117
+ });
118
+ }
119
+ /**
120
+ * Return a new BackupSchedule with enabled = false
121
+ */
122
+ disable() {
123
+ return new BackupSchedule({
124
+ id: this._id,
125
+ name: this._name,
126
+ cronExpression: this._cronExpression,
127
+ retentionPolicy: this._retentionPolicy,
128
+ enabled: false,
129
+ lastRunAt: this._lastRunAt,
130
+ lastRunStatus: this._lastRunStatus,
131
+ lastRunMessage: this._lastRunMessage,
132
+ createdAt: this._createdAt,
133
+ updatedAt: new Date(),
134
+ });
135
+ }
136
+ /**
137
+ * Return a new BackupSchedule with the run recorded
138
+ */
139
+ recordRun(status, message) {
140
+ return new BackupSchedule({
141
+ id: this._id,
142
+ name: this._name,
143
+ cronExpression: this._cronExpression,
144
+ retentionPolicy: this._retentionPolicy,
145
+ enabled: this._enabled,
146
+ lastRunAt: new Date(),
147
+ lastRunStatus: status,
148
+ lastRunMessage: message ?? null,
149
+ createdAt: this._createdAt,
150
+ updatedAt: new Date(),
151
+ });
152
+ }
153
+ /**
154
+ * Convert to plain object for serialization
155
+ */
156
+ toJSON() {
157
+ return {
158
+ id: this._id,
159
+ name: this._name,
160
+ cronExpression: this._cronExpression.expression,
161
+ cronHumanReadable: this._cronExpression.toHumanReadable(),
162
+ retentionPolicy: this._retentionPolicy.toJSON(),
163
+ enabled: this._enabled,
164
+ lastRunAt: this._lastRunAt?.toISOString() ?? null,
165
+ lastRunStatus: this._lastRunStatus,
166
+ lastRunMessage: this._lastRunMessage,
167
+ createdAt: this._createdAt.toISOString(),
168
+ updatedAt: this._updatedAt.toISOString(),
169
+ };
170
+ }
171
+ }
172
+ //# sourceMappingURL=BackupSchedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupSchedule.js","sourceRoot":"","sources":["../../../src/domain/entities/BackupSchedule.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export { World, WorldLockStatus, type WorldLock } from './World.js';
3
3
  export { User, type UserData } from './User.js';
4
4
  export { AuditLog, type AuditLogData, type AuditLogRow } from './AuditLog.js';
5
5
  export { Operator, type OperatorData, type MinecraftOpsJson, } from './Operator.js';
6
+ export { BackupSchedule, type BackupScheduleData, type BackupScheduleRow, } from './BackupSchedule.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC"}
@@ -3,4 +3,5 @@ export { World, WorldLockStatus } from './World.js';
3
3
  export { User } from './User.js';
4
4
  export { AuditLog } from './AuditLog.js';
5
5
  export { Operator, } from './Operator.js';
6
+ export { BackupSchedule, } from './BackupSchedule.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/entities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,IAAI,EAAiB,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAuC,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,QAAQ,GAGT,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/entities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,IAAI,EAAiB,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAuC,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,QAAQ,GAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,GAGf,MAAM,qBAAqB,CAAC"}
@@ -1,3 +1,3 @@
1
- export { ServerName, ServerType, ServerTypeEnum, type ServerTypeInfo, McVersion, Memory, WorldOptions, WorldSetupType, type WorldOptionsData, ModpackOptions, type ModpackConfig, type ModpackSource, UserId, Username, Role, RoleEnum, ServiceStatus, ServiceStatusEnum, ProcessInfo, type ProcessInfoData, type ProcessMetrics, AuditActionEnum, OpLevel, } from './value-objects/index.js';
2
- export { Server, ServerStatus, type ServerConfig, World, WorldLockStatus, type WorldLock, User, type UserData, AuditLog, type AuditLogData, type AuditLogRow, Operator, type OperatorData, type MinecraftOpsJson, } from './entities/index.js';
1
+ export { ServerName, ServerType, ServerTypeEnum, type ServerTypeInfo, McVersion, Memory, WorldOptions, WorldSetupType, type WorldOptionsData, ModpackOptions, type ModpackConfig, type ModpackSource, UserId, Username, Role, RoleEnum, ServiceStatus, ServiceStatusEnum, ProcessInfo, type ProcessInfoData, type ProcessMetrics, AuditActionEnum, OpLevel, CronExpression, BackupRetentionPolicy, type BackupRetentionPolicyData, } from './value-objects/index.js';
2
+ export { Server, ServerStatus, type ServerConfig, World, WorldLockStatus, type WorldLock, User, type UserData, AuditLog, type AuditLogData, type AuditLogRow, Operator, type OperatorData, type MinecraftOpsJson, BackupSchedule, type BackupScheduleData, type BackupScheduleRow, } from './entities/index.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,KAAK,cAAc,EACnB,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,QAAQ,EAER,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,eAAe,EAEf,OAAO,GACR,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,EACL,eAAe,EACf,KAAK,SAAS,EACd,IAAI,EACJ,KAAK,QAAQ,EACb,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,KAAK,cAAc,EACnB,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,QAAQ,EAER,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,eAAe,EAEf,OAAO,EAEP,cAAc,EACd,qBAAqB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,EACL,eAAe,EACf,KAAK,SAAS,EACd,IAAI,EACJ,KAAK,QAAQ,EACb,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC"}