@minecraft-docker/shared 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/application/index.d.ts +3 -0
  2. package/dist/application/index.d.ts.map +1 -0
  3. package/dist/application/index.js +5 -0
  4. package/dist/application/index.js.map +1 -0
  5. package/dist/application/ports/inbound/IBackupUseCase.d.ts +69 -0
  6. package/dist/application/ports/inbound/IBackupUseCase.d.ts.map +1 -0
  7. package/dist/application/ports/inbound/IBackupUseCase.js +2 -0
  8. package/dist/application/ports/inbound/IBackupUseCase.js.map +1 -0
  9. package/dist/application/ports/inbound/ICreateServerUseCase.d.ts +32 -0
  10. package/dist/application/ports/inbound/ICreateServerUseCase.d.ts.map +1 -0
  11. package/dist/application/ports/inbound/ICreateServerUseCase.js +2 -0
  12. package/dist/application/ports/inbound/ICreateServerUseCase.js.map +1 -0
  13. package/dist/application/ports/inbound/IDeleteServerUseCase.d.ts +26 -0
  14. package/dist/application/ports/inbound/IDeleteServerUseCase.d.ts.map +1 -0
  15. package/dist/application/ports/inbound/IDeleteServerUseCase.js +2 -0
  16. package/dist/application/ports/inbound/IDeleteServerUseCase.js.map +1 -0
  17. package/dist/application/ports/inbound/IPlayerLookupUseCase.d.ts +47 -0
  18. package/dist/application/ports/inbound/IPlayerLookupUseCase.d.ts.map +1 -0
  19. package/dist/application/ports/inbound/IPlayerLookupUseCase.js +2 -0
  20. package/dist/application/ports/inbound/IPlayerLookupUseCase.js.map +1 -0
  21. package/dist/application/ports/inbound/IServerStatusUseCase.d.ts +34 -0
  22. package/dist/application/ports/inbound/IServerStatusUseCase.d.ts.map +1 -0
  23. package/dist/application/ports/inbound/IServerStatusUseCase.js +2 -0
  24. package/dist/application/ports/inbound/IServerStatusUseCase.js.map +1 -0
  25. package/dist/application/ports/inbound/IWorldManagementUseCase.d.ts +56 -0
  26. package/dist/application/ports/inbound/IWorldManagementUseCase.d.ts.map +1 -0
  27. package/dist/application/ports/inbound/IWorldManagementUseCase.js +2 -0
  28. package/dist/application/ports/inbound/IWorldManagementUseCase.js.map +1 -0
  29. package/dist/application/ports/inbound/index.d.ts +7 -0
  30. package/dist/application/ports/inbound/index.d.ts.map +1 -0
  31. package/dist/application/ports/inbound/index.js +2 -0
  32. package/dist/application/ports/inbound/index.js.map +1 -0
  33. package/dist/application/ports/index.d.ts +3 -0
  34. package/dist/application/ports/index.d.ts.map +1 -0
  35. package/dist/application/ports/index.js +2 -0
  36. package/dist/application/ports/index.js.map +1 -0
  37. package/dist/application/ports/outbound/IDocProvider.d.ts +73 -0
  38. package/dist/application/ports/outbound/IDocProvider.d.ts.map +1 -0
  39. package/dist/application/ports/outbound/IDocProvider.js +2 -0
  40. package/dist/application/ports/outbound/IDocProvider.js.map +1 -0
  41. package/dist/application/ports/outbound/IPromptPort.d.ts +136 -0
  42. package/dist/application/ports/outbound/IPromptPort.d.ts.map +1 -0
  43. package/dist/application/ports/outbound/IPromptPort.js +2 -0
  44. package/dist/application/ports/outbound/IPromptPort.js.map +1 -0
  45. package/dist/application/ports/outbound/IServerRepository.d.ts +54 -0
  46. package/dist/application/ports/outbound/IServerRepository.d.ts.map +1 -0
  47. package/dist/application/ports/outbound/IServerRepository.js +2 -0
  48. package/dist/application/ports/outbound/IServerRepository.js.map +1 -0
  49. package/dist/application/ports/outbound/IShellPort.d.ts +106 -0
  50. package/dist/application/ports/outbound/IShellPort.d.ts.map +1 -0
  51. package/dist/application/ports/outbound/IShellPort.js +2 -0
  52. package/dist/application/ports/outbound/IShellPort.js.map +1 -0
  53. package/dist/application/ports/outbound/IWorldRepository.d.ts +71 -0
  54. package/dist/application/ports/outbound/IWorldRepository.d.ts.map +1 -0
  55. package/dist/application/ports/outbound/IWorldRepository.js +2 -0
  56. package/dist/application/ports/outbound/IWorldRepository.js.map +1 -0
  57. package/dist/application/ports/outbound/index.d.ts +6 -0
  58. package/dist/application/ports/outbound/index.d.ts.map +1 -0
  59. package/dist/application/ports/outbound/index.js +2 -0
  60. package/dist/application/ports/outbound/index.js.map +1 -0
  61. package/dist/application/use-cases/BackupUseCase.d.ts +35 -0
  62. package/dist/application/use-cases/BackupUseCase.d.ts.map +1 -0
  63. package/dist/application/use-cases/BackupUseCase.js +222 -0
  64. package/dist/application/use-cases/BackupUseCase.js.map +1 -0
  65. package/dist/application/use-cases/CreateServerUseCase.d.ts +22 -0
  66. package/dist/application/use-cases/CreateServerUseCase.d.ts.map +1 -0
  67. package/dist/application/use-cases/CreateServerUseCase.js +145 -0
  68. package/dist/application/use-cases/CreateServerUseCase.js.map +1 -0
  69. package/dist/application/use-cases/DeleteServerUseCase.d.ts +24 -0
  70. package/dist/application/use-cases/DeleteServerUseCase.d.ts.map +1 -0
  71. package/dist/application/use-cases/DeleteServerUseCase.js +108 -0
  72. package/dist/application/use-cases/DeleteServerUseCase.js.map +1 -0
  73. package/dist/application/use-cases/PlayerLookupUseCase.d.ts +23 -0
  74. package/dist/application/use-cases/PlayerLookupUseCase.d.ts.map +1 -0
  75. package/dist/application/use-cases/PlayerLookupUseCase.js +130 -0
  76. package/dist/application/use-cases/PlayerLookupUseCase.js.map +1 -0
  77. package/dist/application/use-cases/ServerStatusUseCase.d.ts +30 -0
  78. package/dist/application/use-cases/ServerStatusUseCase.d.ts.map +1 -0
  79. package/dist/application/use-cases/ServerStatusUseCase.js +117 -0
  80. package/dist/application/use-cases/ServerStatusUseCase.js.map +1 -0
  81. package/dist/application/use-cases/WorldManagementUseCase.d.ts +33 -0
  82. package/dist/application/use-cases/WorldManagementUseCase.d.ts.map +1 -0
  83. package/dist/application/use-cases/WorldManagementUseCase.js +239 -0
  84. package/dist/application/use-cases/WorldManagementUseCase.js.map +1 -0
  85. package/dist/application/use-cases/index.d.ts +7 -0
  86. package/dist/application/use-cases/index.d.ts.map +1 -0
  87. package/dist/application/use-cases/index.js +7 -0
  88. package/dist/application/use-cases/index.js.map +1 -0
  89. package/dist/docker/index.d.ts +111 -0
  90. package/dist/docker/index.d.ts.map +1 -0
  91. package/dist/docker/index.js +532 -0
  92. package/dist/docker/index.js.map +1 -0
  93. package/dist/domain/entities/Server.d.ts +77 -0
  94. package/dist/domain/entities/Server.d.ts.map +1 -0
  95. package/dist/domain/entities/Server.js +138 -0
  96. package/dist/domain/entities/Server.js.map +1 -0
  97. package/dist/domain/entities/World.d.ts +70 -0
  98. package/dist/domain/entities/World.d.ts.map +1 -0
  99. package/dist/domain/entities/World.js +128 -0
  100. package/dist/domain/entities/World.js.map +1 -0
  101. package/dist/domain/entities/index.d.ts +3 -0
  102. package/dist/domain/entities/index.d.ts.map +1 -0
  103. package/dist/domain/entities/index.js +3 -0
  104. package/dist/domain/entities/index.js.map +1 -0
  105. package/dist/domain/index.d.ts +3 -0
  106. package/dist/domain/index.d.ts.map +1 -0
  107. package/dist/domain/index.js +5 -0
  108. package/dist/domain/index.js.map +1 -0
  109. package/dist/domain/value-objects/McVersion.d.ts +35 -0
  110. package/dist/domain/value-objects/McVersion.d.ts.map +1 -0
  111. package/dist/domain/value-objects/McVersion.js +117 -0
  112. package/dist/domain/value-objects/McVersion.js.map +1 -0
  113. package/dist/domain/value-objects/Memory.d.ts +37 -0
  114. package/dist/domain/value-objects/Memory.d.ts.map +1 -0
  115. package/dist/domain/value-objects/Memory.js +107 -0
  116. package/dist/domain/value-objects/Memory.js.map +1 -0
  117. package/dist/domain/value-objects/ServerName.d.ts +21 -0
  118. package/dist/domain/value-objects/ServerName.d.ts.map +1 -0
  119. package/dist/domain/value-objects/ServerName.js +58 -0
  120. package/dist/domain/value-objects/ServerName.js.map +1 -0
  121. package/dist/domain/value-objects/ServerType.d.ts +39 -0
  122. package/dist/domain/value-objects/ServerType.d.ts.map +1 -0
  123. package/dist/domain/value-objects/ServerType.js +128 -0
  124. package/dist/domain/value-objects/ServerType.js.map +1 -0
  125. package/dist/domain/value-objects/WorldOptions.d.ts +49 -0
  126. package/dist/domain/value-objects/WorldOptions.d.ts.map +1 -0
  127. package/dist/domain/value-objects/WorldOptions.js +149 -0
  128. package/dist/domain/value-objects/WorldOptions.js.map +1 -0
  129. package/dist/domain/value-objects/index.d.ts +6 -0
  130. package/dist/domain/value-objects/index.d.ts.map +1 -0
  131. package/dist/domain/value-objects/index.js +6 -0
  132. package/dist/domain/value-objects/index.js.map +1 -0
  133. package/dist/index.d.ts +7 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +17 -0
  136. package/dist/index.js.map +1 -0
  137. package/dist/infrastructure/adapters/DocsAdapter.d.ts +45 -0
  138. package/dist/infrastructure/adapters/DocsAdapter.d.ts.map +1 -0
  139. package/dist/infrastructure/adapters/DocsAdapter.js +490 -0
  140. package/dist/infrastructure/adapters/DocsAdapter.js.map +1 -0
  141. package/dist/infrastructure/adapters/ServerRepository.d.ts +49 -0
  142. package/dist/infrastructure/adapters/ServerRepository.d.ts.map +1 -0
  143. package/dist/infrastructure/adapters/ServerRepository.js +206 -0
  144. package/dist/infrastructure/adapters/ServerRepository.js.map +1 -0
  145. package/dist/infrastructure/adapters/ShellAdapter.d.ts +39 -0
  146. package/dist/infrastructure/adapters/ShellAdapter.d.ts.map +1 -0
  147. package/dist/infrastructure/adapters/ShellAdapter.js +188 -0
  148. package/dist/infrastructure/adapters/ShellAdapter.js.map +1 -0
  149. package/dist/infrastructure/adapters/WorldRepository.d.ts +55 -0
  150. package/dist/infrastructure/adapters/WorldRepository.d.ts.map +1 -0
  151. package/dist/infrastructure/adapters/WorldRepository.js +213 -0
  152. package/dist/infrastructure/adapters/WorldRepository.js.map +1 -0
  153. package/dist/infrastructure/adapters/index.d.ts +9 -0
  154. package/dist/infrastructure/adapters/index.d.ts.map +1 -0
  155. package/dist/infrastructure/adapters/index.js +9 -0
  156. package/dist/infrastructure/adapters/index.js.map +1 -0
  157. package/dist/infrastructure/index.d.ts +6 -0
  158. package/dist/infrastructure/index.d.ts.map +1 -0
  159. package/dist/infrastructure/index.js +6 -0
  160. package/dist/infrastructure/index.js.map +1 -0
  161. package/dist/types/index.d.ts +151 -0
  162. package/dist/types/index.d.ts.map +1 -0
  163. package/dist/types/index.js +2 -0
  164. package/dist/types/index.js.map +1 -0
  165. package/dist/utils/index.d.ts +81 -0
  166. package/dist/utils/index.d.ts.map +1 -0
  167. package/dist/utils/index.js +200 -0
  168. package/dist/utils/index.js.map +1 -0
  169. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ import { Server, ServerStatus } from '../../../domain/index.js';
2
+ /**
3
+ * Server Repository Port - Outbound Port
4
+ * Interface for server data access
5
+ */
6
+ export interface IServerRepository {
7
+ /**
8
+ * Get all servers
9
+ */
10
+ findAll(): Promise<Server[]>;
11
+ /**
12
+ * Find server by name
13
+ */
14
+ findByName(name: string): Promise<Server | null>;
15
+ /**
16
+ * Check if server exists
17
+ */
18
+ exists(name: string): Promise<boolean>;
19
+ /**
20
+ * Get server status
21
+ */
22
+ getStatus(name: string): Promise<ServerStatus>;
23
+ /**
24
+ * Get server configuration from config.env
25
+ */
26
+ getConfig(name: string): Promise<ServerConfigData | null>;
27
+ /**
28
+ * List server names
29
+ */
30
+ listNames(): Promise<string[]>;
31
+ /**
32
+ * Get running servers
33
+ */
34
+ findRunning(): Promise<Server[]>;
35
+ /**
36
+ * Get stopped servers
37
+ */
38
+ findStopped(): Promise<Server[]>;
39
+ }
40
+ /**
41
+ * Server configuration data from config.env
42
+ */
43
+ export interface ServerConfigData {
44
+ name: string;
45
+ type: string;
46
+ version: string;
47
+ memory?: string;
48
+ rconPassword?: string;
49
+ seed?: string;
50
+ worldName?: string;
51
+ worldUrl?: string;
52
+ customEnv?: Record<string, string>;
53
+ }
54
+ //# sourceMappingURL=IServerRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IServerRepository.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IServerRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/B;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjC;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IServerRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IServerRepository.js","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IServerRepository.ts"],"names":[],"mappings":""}
@@ -0,0 +1,106 @@
1
+ import { ServerName, ServerType, McVersion, WorldOptions, Memory } from '../../../domain/index.js';
2
+ /**
3
+ * Shell Port - Outbound Port
4
+ * Interface for shell script execution
5
+ */
6
+ export interface IShellPort {
7
+ /**
8
+ * Create a new server
9
+ */
10
+ createServer(name: ServerName, options: CreateServerOptions): Promise<ShellResult>;
11
+ /**
12
+ * Delete a server
13
+ */
14
+ deleteServer(name: ServerName, force?: boolean): Promise<ShellResult>;
15
+ /**
16
+ * Start a server
17
+ */
18
+ startServer(name: ServerName): Promise<ShellResult>;
19
+ /**
20
+ * Stop a server
21
+ */
22
+ stopServer(name: ServerName): Promise<ShellResult>;
23
+ /**
24
+ * Get server logs
25
+ */
26
+ logs(name: ServerName, options?: LogsOptions): Promise<ShellResult>;
27
+ /**
28
+ * Connect to RCON console
29
+ */
30
+ console(name: ServerName): Promise<ShellResult>;
31
+ /**
32
+ * Get status of all servers
33
+ */
34
+ status(json?: boolean): Promise<ShellResult>;
35
+ /**
36
+ * List worlds
37
+ */
38
+ worldList(json?: boolean): Promise<ShellResult>;
39
+ /**
40
+ * Assign world to server
41
+ */
42
+ worldAssign(worldName: string, serverName: string, force?: boolean): Promise<ShellResult>;
43
+ /**
44
+ * Release world lock
45
+ */
46
+ worldRelease(worldName: string): Promise<ShellResult>;
47
+ /**
48
+ * Lookup player
49
+ */
50
+ playerLookup(name: string): Promise<ShellResult>;
51
+ /**
52
+ * Get player UUID
53
+ */
54
+ playerUuid(name: string, offline?: boolean): Promise<ShellResult>;
55
+ /**
56
+ * Push backup
57
+ */
58
+ backupPush(message?: string): Promise<ShellResult>;
59
+ /**
60
+ * Get backup status
61
+ */
62
+ backupStatus(): Promise<ShellResult>;
63
+ /**
64
+ * Get backup history
65
+ */
66
+ backupHistory(json?: boolean): Promise<ShellResult>;
67
+ /**
68
+ * Restore from backup
69
+ */
70
+ backupRestore(commitHash: string): Promise<ShellResult>;
71
+ /**
72
+ * Execute arbitrary script
73
+ */
74
+ exec(script: string, args?: string[]): Promise<ShellResult>;
75
+ /**
76
+ * Execute script interactively
77
+ */
78
+ execInteractive(script: string, args?: string[]): Promise<number>;
79
+ }
80
+ /**
81
+ * Create server options
82
+ */
83
+ export interface CreateServerOptions {
84
+ type: ServerType;
85
+ version: McVersion;
86
+ worldOptions: WorldOptions;
87
+ memory?: Memory;
88
+ autoStart?: boolean;
89
+ }
90
+ /**
91
+ * Logs options
92
+ */
93
+ export interface LogsOptions {
94
+ follow?: boolean;
95
+ lines?: number;
96
+ }
97
+ /**
98
+ * Shell execution result
99
+ */
100
+ export interface ShellResult {
101
+ code: number;
102
+ stdout: string;
103
+ stderr: string;
104
+ success: boolean;
105
+ }
106
+ //# sourceMappingURL=IShellPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IShellPort.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IShellPort.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IShellPort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IShellPort.js","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IShellPort.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { World } from '../../../domain/index.js';
2
+ /**
3
+ * Server status for world availability
4
+ */
5
+ export type ServerStatus = 'running' | 'stopped' | 'not_found';
6
+ /**
7
+ * World availability category
8
+ */
9
+ export type WorldAvailabilityCategory = 'available' | 'stopped' | 'running';
10
+ /**
11
+ * World with server status information
12
+ */
13
+ export interface WorldWithServerStatus {
14
+ world: World;
15
+ assignedServer?: string;
16
+ serverStatus?: ServerStatus;
17
+ category: WorldAvailabilityCategory;
18
+ }
19
+ /**
20
+ * World Repository Port - Outbound Port
21
+ * Interface for world data access
22
+ */
23
+ export interface IWorldRepository {
24
+ /**
25
+ * Get all worlds
26
+ */
27
+ findAll(): Promise<World[]>;
28
+ /**
29
+ * Find world by name
30
+ */
31
+ findByName(name: string): Promise<World | null>;
32
+ /**
33
+ * Check if world exists
34
+ */
35
+ exists(name: string): Promise<boolean>;
36
+ /**
37
+ * Get unlocked worlds
38
+ */
39
+ findUnlocked(): Promise<World[]>;
40
+ /**
41
+ * Get locked worlds
42
+ */
43
+ findLocked(): Promise<World[]>;
44
+ /**
45
+ * Get worlds locked by a specific server
46
+ */
47
+ findByServer(serverName: string): Promise<World[]>;
48
+ /**
49
+ * List world names
50
+ */
51
+ listNames(): Promise<string[]>;
52
+ /**
53
+ * Get lock status for a world
54
+ */
55
+ getLockStatus(name: string): Promise<WorldLockData | null>;
56
+ /**
57
+ * Get all worlds with their server status
58
+ * Returns worlds categorized by availability
59
+ */
60
+ findAllWithServerStatus(): Promise<WorldWithServerStatus[]>;
61
+ }
62
+ /**
63
+ * World lock data from lock file
64
+ */
65
+ export interface WorldLockData {
66
+ worldName: string;
67
+ serverName: string;
68
+ timestamp: Date;
69
+ pid?: number;
70
+ }
71
+ //# sourceMappingURL=IWorldRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IWorldRepository.d.ts","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IWorldRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,0BAA0B,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE5B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEjC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/B;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAE3D;;;OAGG;IACH,uBAAuB,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IWorldRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IWorldRepository.js","sourceRoot":"","sources":["../../../../src/application/ports/outbound/IWorldRepository.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export type { IPromptPort, TextPromptOptions, SelectPromptOptions, SelectOption, ConfirmPromptOptions, Spinner, } from './IPromptPort.js';
2
+ export type { IShellPort, CreateServerOptions, LogsOptions, ShellResult, } from './IShellPort.js';
3
+ export type { IDocProvider, DocServerTypeInfo, DocEnvVarInfo, DocVersionInfo, DocMemoryInfo, } from './IDocProvider.js';
4
+ export type { IServerRepository, ServerConfigData, } from './IServerRepository.js';
5
+ export type { IWorldRepository, WorldLockData, WorldWithServerStatus, ServerStatus, WorldAvailabilityCategory, } from './IWorldRepository.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/application/ports/outbound/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import type { IBackupUseCase, BackupPushResult, BackupStatusResult, BackupHistoryResult, BackupRestoreResult, IPromptPort, IShellPort } from '../ports/index.js';
2
+ /**
3
+ * Backup Use Case
4
+ * Manages world backups to GitHub
5
+ */
6
+ export declare class BackupUseCase implements IBackupUseCase {
7
+ private readonly prompt;
8
+ private readonly shell;
9
+ constructor(prompt: IPromptPort, shell: IShellPort);
10
+ /**
11
+ * Interactive backup push
12
+ */
13
+ push(): Promise<BackupPushResult>;
14
+ /**
15
+ * Push backup with message
16
+ */
17
+ pushWithMessage(message: string): Promise<BackupPushResult>;
18
+ /**
19
+ * Get backup status
20
+ */
21
+ status(): Promise<BackupStatusResult>;
22
+ /**
23
+ * Get backup history
24
+ */
25
+ history(): Promise<BackupHistoryResult[]>;
26
+ /**
27
+ * Interactive restore selection
28
+ */
29
+ restore(): Promise<BackupRestoreResult>;
30
+ /**
31
+ * Restore from specific commit
32
+ */
33
+ restoreFromCommit(commitHash: string): Promise<BackupRestoreResult>;
34
+ }
35
+ //# sourceMappingURL=BackupUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupUseCase.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/BackupUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAEhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU;IAGpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAgDvC;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoCjE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA8B3C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAoB/C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkE7C;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAyB1E"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Backup Use Case
3
+ * Manages world backups to GitHub
4
+ */
5
+ export class BackupUseCase {
6
+ prompt;
7
+ shell;
8
+ constructor(prompt, shell) {
9
+ this.prompt = prompt;
10
+ this.shell = shell;
11
+ }
12
+ /**
13
+ * Interactive backup push
14
+ */
15
+ async push() {
16
+ this.prompt.intro('Backup Worlds to GitHub');
17
+ try {
18
+ // Check backup status first
19
+ const statusResult = await this.status();
20
+ if (!statusResult.configured) {
21
+ this.prompt.error('Backup not configured');
22
+ this.prompt.note('Set BACKUP_GITHUB_TOKEN and BACKUP_GITHUB_REPO in .env', 'Configuration Required');
23
+ this.prompt.outro('Backup cancelled');
24
+ return {
25
+ success: false,
26
+ error: 'Backup not configured',
27
+ };
28
+ }
29
+ // Prompt for backup message
30
+ const message = await this.prompt.text({
31
+ message: 'Backup message:',
32
+ placeholder: 'Manual backup',
33
+ });
34
+ if (this.prompt.isCancel(message)) {
35
+ this.prompt.outro('Backup cancelled');
36
+ return {
37
+ success: false,
38
+ error: 'Cancelled',
39
+ };
40
+ }
41
+ // Execute backup
42
+ return await this.pushWithMessage(message || 'Manual backup');
43
+ }
44
+ catch (error) {
45
+ if (this.prompt.isCancel(error)) {
46
+ this.prompt.outro('Backup cancelled');
47
+ return {
48
+ success: false,
49
+ error: 'Cancelled',
50
+ };
51
+ }
52
+ throw error;
53
+ }
54
+ }
55
+ /**
56
+ * Push backup with message
57
+ */
58
+ async pushWithMessage(message) {
59
+ const spinner = this.prompt.spinner();
60
+ spinner.start('Backing up worlds...');
61
+ const result = await this.shell.backupPush(message);
62
+ if (!result.success) {
63
+ spinner.stop('Backup failed');
64
+ this.prompt.error(result.stderr || 'Unknown error');
65
+ return {
66
+ success: false,
67
+ message,
68
+ error: result.stderr,
69
+ };
70
+ }
71
+ spinner.stop('Backup complete');
72
+ // Parse commit hash from output
73
+ const commitMatch = result.stdout.match(/commit:\s*([a-f0-9]+)/i);
74
+ const commitHash = commitMatch ? commitMatch[1] : undefined;
75
+ this.prompt.success('Worlds backed up successfully');
76
+ if (commitHash) {
77
+ this.prompt.note(`Commit: ${commitHash}`, 'Backup Info');
78
+ }
79
+ this.prompt.outro('Backup complete');
80
+ return {
81
+ success: true,
82
+ commitHash,
83
+ message,
84
+ };
85
+ }
86
+ /**
87
+ * Get backup status
88
+ */
89
+ async status() {
90
+ const result = await this.shell.backupStatus();
91
+ if (!result.success) {
92
+ return {
93
+ configured: false,
94
+ };
95
+ }
96
+ // Parse status output
97
+ const output = result.stdout;
98
+ const repoMatch = output.match(/Repository:\s*(.+)/i);
99
+ const branchMatch = output.match(/Branch:\s*(.+)/i);
100
+ const lastBackupMatch = output.match(/Last backup:\s*(.+)/i);
101
+ const autoMatch = output.match(/Auto backup:\s*(enabled|disabled)/i);
102
+ return {
103
+ configured: true,
104
+ repository: repoMatch ? repoMatch[1]?.trim() : undefined,
105
+ branch: branchMatch ? branchMatch[1]?.trim() : undefined,
106
+ lastBackup: lastBackupMatch
107
+ ? new Date(lastBackupMatch[1].trim())
108
+ : undefined,
109
+ autoBackupEnabled: autoMatch
110
+ ? autoMatch[1]?.toLowerCase() === 'enabled'
111
+ : undefined,
112
+ };
113
+ }
114
+ /**
115
+ * Get backup history
116
+ */
117
+ async history() {
118
+ const result = await this.shell.backupHistory(true);
119
+ if (!result.success) {
120
+ return [];
121
+ }
122
+ try {
123
+ const data = JSON.parse(result.stdout);
124
+ return data.map((entry) => ({
125
+ commitHash: entry.hash,
126
+ message: entry.message,
127
+ date: new Date(entry.date),
128
+ author: entry.author,
129
+ }));
130
+ }
131
+ catch {
132
+ return [];
133
+ }
134
+ }
135
+ /**
136
+ * Interactive restore selection
137
+ */
138
+ async restore() {
139
+ this.prompt.intro('Restore from Backup');
140
+ try {
141
+ // Get history
142
+ const history = await this.history();
143
+ if (history.length === 0) {
144
+ this.prompt.warn('No backup history found');
145
+ this.prompt.outro('Nothing to restore');
146
+ return {
147
+ success: false,
148
+ commitHash: '',
149
+ error: 'No backup history found',
150
+ };
151
+ }
152
+ // Prompt for commit selection
153
+ const selected = await this.prompt.select({
154
+ message: 'Select backup to restore:',
155
+ options: history.slice(0, 10).map((entry) => ({
156
+ value: entry.commitHash,
157
+ label: entry.commitHash.substring(0, 7),
158
+ hint: `${entry.message} (${entry.date.toLocaleDateString()})`,
159
+ })),
160
+ });
161
+ if (this.prompt.isCancel(selected)) {
162
+ this.prompt.outro('Restore cancelled');
163
+ return {
164
+ success: false,
165
+ commitHash: '',
166
+ error: 'Cancelled',
167
+ };
168
+ }
169
+ // Confirm restore
170
+ const confirmed = await this.prompt.confirm({
171
+ message: 'This will overwrite current world data. Continue?',
172
+ initialValue: false,
173
+ });
174
+ if (!confirmed) {
175
+ this.prompt.outro('Restore cancelled');
176
+ return {
177
+ success: false,
178
+ commitHash: selected,
179
+ error: 'Cancelled',
180
+ };
181
+ }
182
+ // Execute restore
183
+ return await this.restoreFromCommit(selected);
184
+ }
185
+ catch (error) {
186
+ if (this.prompt.isCancel(error)) {
187
+ this.prompt.outro('Restore cancelled');
188
+ return {
189
+ success: false,
190
+ commitHash: '',
191
+ error: 'Cancelled',
192
+ };
193
+ }
194
+ throw error;
195
+ }
196
+ }
197
+ /**
198
+ * Restore from specific commit
199
+ */
200
+ async restoreFromCommit(commitHash) {
201
+ const spinner = this.prompt.spinner();
202
+ spinner.start('Restoring from backup...');
203
+ const result = await this.shell.backupRestore(commitHash);
204
+ if (!result.success) {
205
+ spinner.stop('Restore failed');
206
+ this.prompt.error(result.stderr || 'Unknown error');
207
+ return {
208
+ success: false,
209
+ commitHash,
210
+ error: result.stderr,
211
+ };
212
+ }
213
+ spinner.stop('Restore complete');
214
+ this.prompt.success(`Restored from ${commitHash.substring(0, 7)}`);
215
+ this.prompt.outro('Restore complete');
216
+ return {
217
+ success: true,
218
+ commitHash,
219
+ };
220
+ }
221
+ }
222
+ //# sourceMappingURL=BackupUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupUseCase.js","sourceRoot":"","sources":["../../../src/application/use-cases/BackupUseCase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Server } from '../../domain/index.js';
2
+ import type { ICreateServerUseCase, CreateServerConfig, IPromptPort, IShellPort, IServerRepository, IWorldRepository } from '../ports/index.js';
3
+ /**
4
+ * Create Server Use Case
5
+ * Orchestrates interactive server creation flow
6
+ */
7
+ export declare class CreateServerUseCase implements ICreateServerUseCase {
8
+ private readonly prompt;
9
+ private readonly shell;
10
+ private readonly serverRepo;
11
+ private readonly worldRepo?;
12
+ constructor(prompt: IPromptPort, shell: IShellPort, serverRepo: IServerRepository, worldRepo?: IWorldRepository | undefined);
13
+ /**
14
+ * Execute interactive server creation
15
+ */
16
+ execute(): Promise<Server>;
17
+ /**
18
+ * Execute server creation with provided configuration
19
+ */
20
+ executeWithConfig(config: CreateServerConfig): Promise<Server>;
21
+ }
22
+ //# sourceMappingURL=CreateServerUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateServerUseCase.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/CreateServerUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAOP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAHV,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,iBAAiB,EAC7B,SAAS,CAAC,EAAE,gBAAgB,YAAA;IAG/C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA2FhC;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAsDrE"}