@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.
- package/dist/application/index.d.ts +3 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +5 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/ports/inbound/IBackupUseCase.d.ts +69 -0
- package/dist/application/ports/inbound/IBackupUseCase.d.ts.map +1 -0
- package/dist/application/ports/inbound/IBackupUseCase.js +2 -0
- package/dist/application/ports/inbound/IBackupUseCase.js.map +1 -0
- package/dist/application/ports/inbound/ICreateServerUseCase.d.ts +32 -0
- package/dist/application/ports/inbound/ICreateServerUseCase.d.ts.map +1 -0
- package/dist/application/ports/inbound/ICreateServerUseCase.js +2 -0
- package/dist/application/ports/inbound/ICreateServerUseCase.js.map +1 -0
- package/dist/application/ports/inbound/IDeleteServerUseCase.d.ts +26 -0
- package/dist/application/ports/inbound/IDeleteServerUseCase.d.ts.map +1 -0
- package/dist/application/ports/inbound/IDeleteServerUseCase.js +2 -0
- package/dist/application/ports/inbound/IDeleteServerUseCase.js.map +1 -0
- package/dist/application/ports/inbound/IPlayerLookupUseCase.d.ts +47 -0
- package/dist/application/ports/inbound/IPlayerLookupUseCase.d.ts.map +1 -0
- package/dist/application/ports/inbound/IPlayerLookupUseCase.js +2 -0
- package/dist/application/ports/inbound/IPlayerLookupUseCase.js.map +1 -0
- package/dist/application/ports/inbound/IServerStatusUseCase.d.ts +34 -0
- package/dist/application/ports/inbound/IServerStatusUseCase.d.ts.map +1 -0
- package/dist/application/ports/inbound/IServerStatusUseCase.js +2 -0
- package/dist/application/ports/inbound/IServerStatusUseCase.js.map +1 -0
- package/dist/application/ports/inbound/IWorldManagementUseCase.d.ts +56 -0
- package/dist/application/ports/inbound/IWorldManagementUseCase.d.ts.map +1 -0
- package/dist/application/ports/inbound/IWorldManagementUseCase.js +2 -0
- package/dist/application/ports/inbound/IWorldManagementUseCase.js.map +1 -0
- package/dist/application/ports/inbound/index.d.ts +7 -0
- package/dist/application/ports/inbound/index.d.ts.map +1 -0
- package/dist/application/ports/inbound/index.js +2 -0
- package/dist/application/ports/inbound/index.js.map +1 -0
- package/dist/application/ports/index.d.ts +3 -0
- package/dist/application/ports/index.d.ts.map +1 -0
- package/dist/application/ports/index.js +2 -0
- package/dist/application/ports/index.js.map +1 -0
- package/dist/application/ports/outbound/IDocProvider.d.ts +73 -0
- package/dist/application/ports/outbound/IDocProvider.d.ts.map +1 -0
- package/dist/application/ports/outbound/IDocProvider.js +2 -0
- package/dist/application/ports/outbound/IDocProvider.js.map +1 -0
- package/dist/application/ports/outbound/IPromptPort.d.ts +136 -0
- package/dist/application/ports/outbound/IPromptPort.d.ts.map +1 -0
- package/dist/application/ports/outbound/IPromptPort.js +2 -0
- package/dist/application/ports/outbound/IPromptPort.js.map +1 -0
- package/dist/application/ports/outbound/IServerRepository.d.ts +54 -0
- package/dist/application/ports/outbound/IServerRepository.d.ts.map +1 -0
- package/dist/application/ports/outbound/IServerRepository.js +2 -0
- package/dist/application/ports/outbound/IServerRepository.js.map +1 -0
- package/dist/application/ports/outbound/IShellPort.d.ts +106 -0
- package/dist/application/ports/outbound/IShellPort.d.ts.map +1 -0
- package/dist/application/ports/outbound/IShellPort.js +2 -0
- package/dist/application/ports/outbound/IShellPort.js.map +1 -0
- package/dist/application/ports/outbound/IWorldRepository.d.ts +71 -0
- package/dist/application/ports/outbound/IWorldRepository.d.ts.map +1 -0
- package/dist/application/ports/outbound/IWorldRepository.js +2 -0
- package/dist/application/ports/outbound/IWorldRepository.js.map +1 -0
- package/dist/application/ports/outbound/index.d.ts +6 -0
- package/dist/application/ports/outbound/index.d.ts.map +1 -0
- package/dist/application/ports/outbound/index.js +2 -0
- package/dist/application/ports/outbound/index.js.map +1 -0
- package/dist/application/use-cases/BackupUseCase.d.ts +35 -0
- package/dist/application/use-cases/BackupUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/BackupUseCase.js +222 -0
- package/dist/application/use-cases/BackupUseCase.js.map +1 -0
- package/dist/application/use-cases/CreateServerUseCase.d.ts +22 -0
- package/dist/application/use-cases/CreateServerUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/CreateServerUseCase.js +145 -0
- package/dist/application/use-cases/CreateServerUseCase.js.map +1 -0
- package/dist/application/use-cases/DeleteServerUseCase.d.ts +24 -0
- package/dist/application/use-cases/DeleteServerUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/DeleteServerUseCase.js +108 -0
- package/dist/application/use-cases/DeleteServerUseCase.js.map +1 -0
- package/dist/application/use-cases/PlayerLookupUseCase.d.ts +23 -0
- package/dist/application/use-cases/PlayerLookupUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/PlayerLookupUseCase.js +130 -0
- package/dist/application/use-cases/PlayerLookupUseCase.js.map +1 -0
- package/dist/application/use-cases/ServerStatusUseCase.d.ts +30 -0
- package/dist/application/use-cases/ServerStatusUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/ServerStatusUseCase.js +117 -0
- package/dist/application/use-cases/ServerStatusUseCase.js.map +1 -0
- package/dist/application/use-cases/WorldManagementUseCase.d.ts +33 -0
- package/dist/application/use-cases/WorldManagementUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/WorldManagementUseCase.js +239 -0
- package/dist/application/use-cases/WorldManagementUseCase.js.map +1 -0
- package/dist/application/use-cases/index.d.ts +7 -0
- package/dist/application/use-cases/index.d.ts.map +1 -0
- package/dist/application/use-cases/index.js +7 -0
- package/dist/application/use-cases/index.js.map +1 -0
- package/dist/docker/index.d.ts +111 -0
- package/dist/docker/index.d.ts.map +1 -0
- package/dist/docker/index.js +532 -0
- package/dist/docker/index.js.map +1 -0
- package/dist/domain/entities/Server.d.ts +77 -0
- package/dist/domain/entities/Server.d.ts.map +1 -0
- package/dist/domain/entities/Server.js +138 -0
- package/dist/domain/entities/Server.js.map +1 -0
- package/dist/domain/entities/World.d.ts +70 -0
- package/dist/domain/entities/World.d.ts.map +1 -0
- package/dist/domain/entities/World.js +128 -0
- package/dist/domain/entities/World.js.map +1 -0
- package/dist/domain/entities/index.d.ts +3 -0
- package/dist/domain/entities/index.d.ts.map +1 -0
- package/dist/domain/entities/index.js +3 -0
- package/dist/domain/entities/index.js.map +1 -0
- package/dist/domain/index.d.ts +3 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +5 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/value-objects/McVersion.d.ts +35 -0
- package/dist/domain/value-objects/McVersion.d.ts.map +1 -0
- package/dist/domain/value-objects/McVersion.js +117 -0
- package/dist/domain/value-objects/McVersion.js.map +1 -0
- package/dist/domain/value-objects/Memory.d.ts +37 -0
- package/dist/domain/value-objects/Memory.d.ts.map +1 -0
- package/dist/domain/value-objects/Memory.js +107 -0
- package/dist/domain/value-objects/Memory.js.map +1 -0
- package/dist/domain/value-objects/ServerName.d.ts +21 -0
- package/dist/domain/value-objects/ServerName.d.ts.map +1 -0
- package/dist/domain/value-objects/ServerName.js +58 -0
- package/dist/domain/value-objects/ServerName.js.map +1 -0
- package/dist/domain/value-objects/ServerType.d.ts +39 -0
- package/dist/domain/value-objects/ServerType.d.ts.map +1 -0
- package/dist/domain/value-objects/ServerType.js +128 -0
- package/dist/domain/value-objects/ServerType.js.map +1 -0
- package/dist/domain/value-objects/WorldOptions.d.ts +49 -0
- package/dist/domain/value-objects/WorldOptions.d.ts.map +1 -0
- package/dist/domain/value-objects/WorldOptions.js +149 -0
- package/dist/domain/value-objects/WorldOptions.js.map +1 -0
- package/dist/domain/value-objects/index.d.ts +6 -0
- package/dist/domain/value-objects/index.d.ts.map +1 -0
- package/dist/domain/value-objects/index.js +6 -0
- package/dist/domain/value-objects/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/adapters/DocsAdapter.d.ts +45 -0
- package/dist/infrastructure/adapters/DocsAdapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/DocsAdapter.js +490 -0
- package/dist/infrastructure/adapters/DocsAdapter.js.map +1 -0
- package/dist/infrastructure/adapters/ServerRepository.d.ts +49 -0
- package/dist/infrastructure/adapters/ServerRepository.d.ts.map +1 -0
- package/dist/infrastructure/adapters/ServerRepository.js +206 -0
- package/dist/infrastructure/adapters/ServerRepository.js.map +1 -0
- package/dist/infrastructure/adapters/ShellAdapter.d.ts +39 -0
- package/dist/infrastructure/adapters/ShellAdapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/ShellAdapter.js +188 -0
- package/dist/infrastructure/adapters/ShellAdapter.js.map +1 -0
- package/dist/infrastructure/adapters/WorldRepository.d.ts +55 -0
- package/dist/infrastructure/adapters/WorldRepository.d.ts.map +1 -0
- package/dist/infrastructure/adapters/WorldRepository.js +213 -0
- package/dist/infrastructure/adapters/WorldRepository.js.map +1 -0
- package/dist/infrastructure/adapters/index.d.ts +9 -0
- package/dist/infrastructure/adapters/index.d.ts.map +1 -0
- package/dist/infrastructure/adapters/index.js +9 -0
- package/dist/infrastructure/adapters/index.js.map +1 -0
- package/dist/infrastructure/index.d.ts +6 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +6 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/types/index.d.ts +151 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +81 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +200 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Value Object
|
|
3
|
+
* Represents JVM memory allocation (e.g., "2G", "4G", "512M")
|
|
4
|
+
*/
|
|
5
|
+
export class Memory {
|
|
6
|
+
_value;
|
|
7
|
+
_bytes;
|
|
8
|
+
constructor(_value, _bytes) {
|
|
9
|
+
this._value = _value;
|
|
10
|
+
this._bytes = _bytes;
|
|
11
|
+
Object.freeze(this);
|
|
12
|
+
}
|
|
13
|
+
get value() {
|
|
14
|
+
return this._value;
|
|
15
|
+
}
|
|
16
|
+
get bytes() {
|
|
17
|
+
return this._bytes;
|
|
18
|
+
}
|
|
19
|
+
get megabytes() {
|
|
20
|
+
return Math.floor(this._bytes / (1024 * 1024));
|
|
21
|
+
}
|
|
22
|
+
get gigabytes() {
|
|
23
|
+
return Math.floor(this._bytes / (1024 * 1024 * 1024));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns formatted string (e.g., "4G" or "512M")
|
|
27
|
+
*/
|
|
28
|
+
get formatted() {
|
|
29
|
+
if (this._bytes >= 1024 * 1024 * 1024) {
|
|
30
|
+
const gb = this._bytes / (1024 * 1024 * 1024);
|
|
31
|
+
return Number.isInteger(gb) ? `${gb}G` : `${this.megabytes}M`;
|
|
32
|
+
}
|
|
33
|
+
return `${this.megabytes}M`;
|
|
34
|
+
}
|
|
35
|
+
static create(value) {
|
|
36
|
+
const trimmed = value.trim().toUpperCase();
|
|
37
|
+
// Parse memory string: 2G, 4G, 512M, 1024M
|
|
38
|
+
const match = trimmed.match(/^(\d+(?:\.\d+)?)\s*([GM])$/);
|
|
39
|
+
if (!match) {
|
|
40
|
+
throw new Error(`Invalid memory format: ${value}. Expected format: <number>G or <number>M (e.g., 4G, 512M)`);
|
|
41
|
+
}
|
|
42
|
+
const amount = parseFloat(match[1]);
|
|
43
|
+
const unit = match[2];
|
|
44
|
+
if (amount <= 0) {
|
|
45
|
+
throw new Error('Memory allocation must be greater than 0');
|
|
46
|
+
}
|
|
47
|
+
let bytes;
|
|
48
|
+
if (unit === 'G') {
|
|
49
|
+
bytes = amount * 1024 * 1024 * 1024;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
bytes = amount * 1024 * 1024;
|
|
53
|
+
}
|
|
54
|
+
// Minimum 512M
|
|
55
|
+
const minBytes = 512 * 1024 * 1024;
|
|
56
|
+
if (bytes < minBytes) {
|
|
57
|
+
throw new Error('Memory allocation must be at least 512M');
|
|
58
|
+
}
|
|
59
|
+
// Maximum 64G (reasonable limit)
|
|
60
|
+
const maxBytes = 64 * 1024 * 1024 * 1024;
|
|
61
|
+
if (bytes > maxBytes) {
|
|
62
|
+
throw new Error('Memory allocation cannot exceed 64G');
|
|
63
|
+
}
|
|
64
|
+
// Normalize to canonical format
|
|
65
|
+
const normalizedValue = bytes >= 1024 * 1024 * 1024
|
|
66
|
+
? `${Math.floor(bytes / (1024 * 1024 * 1024))}G`
|
|
67
|
+
: `${Math.floor(bytes / (1024 * 1024))}M`;
|
|
68
|
+
return new Memory(normalizedValue, bytes);
|
|
69
|
+
}
|
|
70
|
+
static fromGigabytes(gb) {
|
|
71
|
+
return Memory.create(`${gb}G`);
|
|
72
|
+
}
|
|
73
|
+
static fromMegabytes(mb) {
|
|
74
|
+
return Memory.create(`${mb}M`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Default memory allocation (4G)
|
|
78
|
+
*/
|
|
79
|
+
static default() {
|
|
80
|
+
return Memory.fromGigabytes(4);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Recommended minimum for vanilla servers
|
|
84
|
+
*/
|
|
85
|
+
static minimum() {
|
|
86
|
+
return Memory.fromGigabytes(2);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Recommended for modded servers
|
|
90
|
+
*/
|
|
91
|
+
static forMods() {
|
|
92
|
+
return Memory.fromGigabytes(6);
|
|
93
|
+
}
|
|
94
|
+
isGreaterThan(other) {
|
|
95
|
+
return this._bytes > other._bytes;
|
|
96
|
+
}
|
|
97
|
+
isLessThan(other) {
|
|
98
|
+
return this._bytes < other._bytes;
|
|
99
|
+
}
|
|
100
|
+
equals(other) {
|
|
101
|
+
return this._bytes === other._bytes;
|
|
102
|
+
}
|
|
103
|
+
toString() {
|
|
104
|
+
return this._value;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=Memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../../src/domain/value-objects/Memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServerName Value Object
|
|
3
|
+
* Represents a validated Minecraft server name
|
|
4
|
+
*/
|
|
5
|
+
export declare class ServerName {
|
|
6
|
+
private readonly _value;
|
|
7
|
+
private constructor();
|
|
8
|
+
get value(): string;
|
|
9
|
+
/**
|
|
10
|
+
* Server name with mc- prefix for Docker container/service naming
|
|
11
|
+
*/
|
|
12
|
+
get containerName(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Server hostname for mc-router (e.g., myserver.local)
|
|
15
|
+
*/
|
|
16
|
+
get hostname(): string;
|
|
17
|
+
static create(value: string): ServerName;
|
|
18
|
+
equals(other: ServerName): boolean;
|
|
19
|
+
toString(): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ServerName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerName.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/ServerName.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,UAAU;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO;IAIP,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAmCxC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIlC,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServerName Value Object
|
|
3
|
+
* Represents a validated Minecraft server name
|
|
4
|
+
*/
|
|
5
|
+
export class ServerName {
|
|
6
|
+
_value;
|
|
7
|
+
constructor(_value) {
|
|
8
|
+
this._value = _value;
|
|
9
|
+
Object.freeze(this);
|
|
10
|
+
}
|
|
11
|
+
get value() {
|
|
12
|
+
return this._value;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Server name with mc- prefix for Docker container/service naming
|
|
16
|
+
*/
|
|
17
|
+
get containerName() {
|
|
18
|
+
return `mc-${this._value}`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Server hostname for mc-router (e.g., myserver.local)
|
|
22
|
+
*/
|
|
23
|
+
get hostname() {
|
|
24
|
+
return `${this._value}.local`;
|
|
25
|
+
}
|
|
26
|
+
static create(value) {
|
|
27
|
+
const trimmed = value.trim().toLowerCase();
|
|
28
|
+
if (!trimmed) {
|
|
29
|
+
throw new Error('Server name cannot be empty');
|
|
30
|
+
}
|
|
31
|
+
if (trimmed.length < 2) {
|
|
32
|
+
throw new Error('Server name must be at least 2 characters');
|
|
33
|
+
}
|
|
34
|
+
if (trimmed.length > 32) {
|
|
35
|
+
throw new Error('Server name cannot exceed 32 characters');
|
|
36
|
+
}
|
|
37
|
+
// Only allow lowercase letters, numbers, and hyphens
|
|
38
|
+
if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(trimmed) && trimmed.length > 1) {
|
|
39
|
+
throw new Error('Server name must start with a letter, end with a letter or number, and contain only lowercase letters, numbers, and hyphens');
|
|
40
|
+
}
|
|
41
|
+
// Single character check
|
|
42
|
+
if (trimmed.length === 2 && !/^[a-z][a-z0-9]$/.test(trimmed)) {
|
|
43
|
+
throw new Error('Server name must start with a letter');
|
|
44
|
+
}
|
|
45
|
+
// No consecutive hyphens
|
|
46
|
+
if (/--/.test(trimmed)) {
|
|
47
|
+
throw new Error('Server name cannot contain consecutive hyphens');
|
|
48
|
+
}
|
|
49
|
+
return new ServerName(trimmed);
|
|
50
|
+
}
|
|
51
|
+
equals(other) {
|
|
52
|
+
return this._value === other._value;
|
|
53
|
+
}
|
|
54
|
+
toString() {
|
|
55
|
+
return this._value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=ServerName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerName.js","sourceRoot":"","sources":["../../../src/domain/value-objects/ServerName.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,UAAU;IACgB;IAArC,YAAqC,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServerType Value Object
|
|
3
|
+
* Represents Minecraft server types supported by itzg/minecraft-server
|
|
4
|
+
*/
|
|
5
|
+
export declare enum ServerTypeEnum {
|
|
6
|
+
PAPER = "PAPER",
|
|
7
|
+
VANILLA = "VANILLA",
|
|
8
|
+
FORGE = "FORGE",
|
|
9
|
+
FABRIC = "FABRIC",
|
|
10
|
+
SPIGOT = "SPIGOT",
|
|
11
|
+
BUKKIT = "BUKKIT",
|
|
12
|
+
PURPUR = "PURPUR",
|
|
13
|
+
QUILT = "QUILT"
|
|
14
|
+
}
|
|
15
|
+
export interface ServerTypeInfo {
|
|
16
|
+
value: ServerTypeEnum;
|
|
17
|
+
label: string;
|
|
18
|
+
description: string;
|
|
19
|
+
supportsPlugins: boolean;
|
|
20
|
+
supportsMods: boolean;
|
|
21
|
+
recommended: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare class ServerType {
|
|
24
|
+
private readonly _value;
|
|
25
|
+
private constructor();
|
|
26
|
+
get value(): ServerTypeEnum;
|
|
27
|
+
get info(): ServerTypeInfo;
|
|
28
|
+
get label(): string;
|
|
29
|
+
get description(): string;
|
|
30
|
+
get supportsPlugins(): boolean;
|
|
31
|
+
get supportsMods(): boolean;
|
|
32
|
+
static create(value: string): ServerType;
|
|
33
|
+
static fromEnum(value: ServerTypeEnum): ServerType;
|
|
34
|
+
static getAll(): ServerTypeInfo[];
|
|
35
|
+
static getRecommended(): ServerType;
|
|
36
|
+
equals(other: ServerType): boolean;
|
|
37
|
+
toString(): string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ServerType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerType.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/ServerType.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AA6DD,qBAAa,UAAU;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO;IAIP,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED,IAAI,IAAI,IAAI,cAAc,CAKzB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAWxC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU;IAIlD,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE;IAOjC,MAAM,CAAC,cAAc,IAAI,UAAU;IAInC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIlC,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServerType Value Object
|
|
3
|
+
* Represents Minecraft server types supported by itzg/minecraft-server
|
|
4
|
+
*/
|
|
5
|
+
export var ServerTypeEnum;
|
|
6
|
+
(function (ServerTypeEnum) {
|
|
7
|
+
ServerTypeEnum["PAPER"] = "PAPER";
|
|
8
|
+
ServerTypeEnum["VANILLA"] = "VANILLA";
|
|
9
|
+
ServerTypeEnum["FORGE"] = "FORGE";
|
|
10
|
+
ServerTypeEnum["FABRIC"] = "FABRIC";
|
|
11
|
+
ServerTypeEnum["SPIGOT"] = "SPIGOT";
|
|
12
|
+
ServerTypeEnum["BUKKIT"] = "BUKKIT";
|
|
13
|
+
ServerTypeEnum["PURPUR"] = "PURPUR";
|
|
14
|
+
ServerTypeEnum["QUILT"] = "QUILT";
|
|
15
|
+
})(ServerTypeEnum || (ServerTypeEnum = {}));
|
|
16
|
+
const SERVER_TYPE_INFO = {
|
|
17
|
+
[ServerTypeEnum.PAPER]: {
|
|
18
|
+
label: 'Paper',
|
|
19
|
+
description: 'High performance server with plugin support (Recommended)',
|
|
20
|
+
supportsPlugins: true,
|
|
21
|
+
supportsMods: false,
|
|
22
|
+
recommended: true,
|
|
23
|
+
},
|
|
24
|
+
[ServerTypeEnum.VANILLA]: {
|
|
25
|
+
label: 'Vanilla',
|
|
26
|
+
description: 'Official Minecraft server',
|
|
27
|
+
supportsPlugins: false,
|
|
28
|
+
supportsMods: false,
|
|
29
|
+
recommended: false,
|
|
30
|
+
},
|
|
31
|
+
[ServerTypeEnum.FORGE]: {
|
|
32
|
+
label: 'Forge',
|
|
33
|
+
description: 'Modded server for Forge mods',
|
|
34
|
+
supportsPlugins: false,
|
|
35
|
+
supportsMods: true,
|
|
36
|
+
recommended: false,
|
|
37
|
+
},
|
|
38
|
+
[ServerTypeEnum.FABRIC]: {
|
|
39
|
+
label: 'Fabric',
|
|
40
|
+
description: 'Lightweight modded server',
|
|
41
|
+
supportsPlugins: false,
|
|
42
|
+
supportsMods: true,
|
|
43
|
+
recommended: false,
|
|
44
|
+
},
|
|
45
|
+
[ServerTypeEnum.SPIGOT]: {
|
|
46
|
+
label: 'Spigot',
|
|
47
|
+
description: 'Modified Bukkit server with plugin support',
|
|
48
|
+
supportsPlugins: true,
|
|
49
|
+
supportsMods: false,
|
|
50
|
+
recommended: false,
|
|
51
|
+
},
|
|
52
|
+
[ServerTypeEnum.BUKKIT]: {
|
|
53
|
+
label: 'Bukkit',
|
|
54
|
+
description: 'Classic plugin server',
|
|
55
|
+
supportsPlugins: true,
|
|
56
|
+
supportsMods: false,
|
|
57
|
+
recommended: false,
|
|
58
|
+
},
|
|
59
|
+
[ServerTypeEnum.PURPUR]: {
|
|
60
|
+
label: 'Purpur',
|
|
61
|
+
description: 'Paper fork with additional features',
|
|
62
|
+
supportsPlugins: true,
|
|
63
|
+
supportsMods: false,
|
|
64
|
+
recommended: false,
|
|
65
|
+
},
|
|
66
|
+
[ServerTypeEnum.QUILT]: {
|
|
67
|
+
label: 'Quilt',
|
|
68
|
+
description: 'Modern modding toolchain',
|
|
69
|
+
supportsPlugins: false,
|
|
70
|
+
supportsMods: true,
|
|
71
|
+
recommended: false,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
export class ServerType {
|
|
75
|
+
_value;
|
|
76
|
+
constructor(_value) {
|
|
77
|
+
this._value = _value;
|
|
78
|
+
Object.freeze(this);
|
|
79
|
+
}
|
|
80
|
+
get value() {
|
|
81
|
+
return this._value;
|
|
82
|
+
}
|
|
83
|
+
get info() {
|
|
84
|
+
return {
|
|
85
|
+
value: this._value,
|
|
86
|
+
...SERVER_TYPE_INFO[this._value],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
get label() {
|
|
90
|
+
return SERVER_TYPE_INFO[this._value].label;
|
|
91
|
+
}
|
|
92
|
+
get description() {
|
|
93
|
+
return SERVER_TYPE_INFO[this._value].description;
|
|
94
|
+
}
|
|
95
|
+
get supportsPlugins() {
|
|
96
|
+
return SERVER_TYPE_INFO[this._value].supportsPlugins;
|
|
97
|
+
}
|
|
98
|
+
get supportsMods() {
|
|
99
|
+
return SERVER_TYPE_INFO[this._value].supportsMods;
|
|
100
|
+
}
|
|
101
|
+
static create(value) {
|
|
102
|
+
const upperValue = value.toUpperCase().trim();
|
|
103
|
+
if (!Object.values(ServerTypeEnum).includes(upperValue)) {
|
|
104
|
+
const validTypes = Object.values(ServerTypeEnum).join(', ');
|
|
105
|
+
throw new Error(`Invalid server type: ${value}. Valid types are: ${validTypes}`);
|
|
106
|
+
}
|
|
107
|
+
return new ServerType(upperValue);
|
|
108
|
+
}
|
|
109
|
+
static fromEnum(value) {
|
|
110
|
+
return new ServerType(value);
|
|
111
|
+
}
|
|
112
|
+
static getAll() {
|
|
113
|
+
return Object.values(ServerTypeEnum).map((type) => ({
|
|
114
|
+
value: type,
|
|
115
|
+
...SERVER_TYPE_INFO[type],
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
static getRecommended() {
|
|
119
|
+
return new ServerType(ServerTypeEnum.PAPER);
|
|
120
|
+
}
|
|
121
|
+
equals(other) {
|
|
122
|
+
return this._value === other._value;
|
|
123
|
+
}
|
|
124
|
+
toString() {
|
|
125
|
+
return this._value;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=ServerType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerType.js","sourceRoot":"","sources":["../../../src/domain/value-objects/ServerType.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorldOptions Value Object
|
|
3
|
+
* Represents world configuration options for server creation
|
|
4
|
+
*/
|
|
5
|
+
export declare enum WorldSetupType {
|
|
6
|
+
NEW = "new",
|
|
7
|
+
EXISTING = "existing",
|
|
8
|
+
DOWNLOAD = "download"
|
|
9
|
+
}
|
|
10
|
+
export interface WorldOptionsData {
|
|
11
|
+
setupType: WorldSetupType;
|
|
12
|
+
seed?: string;
|
|
13
|
+
worldName?: string;
|
|
14
|
+
downloadUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class WorldOptions {
|
|
17
|
+
private readonly _data;
|
|
18
|
+
private constructor();
|
|
19
|
+
get setupType(): WorldSetupType;
|
|
20
|
+
get seed(): string | undefined;
|
|
21
|
+
get worldName(): string | undefined;
|
|
22
|
+
get downloadUrl(): string | undefined;
|
|
23
|
+
get isNewWorld(): boolean;
|
|
24
|
+
get isExistingWorld(): boolean;
|
|
25
|
+
get isDownloadWorld(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Convert to CLI arguments for create-server.sh
|
|
28
|
+
*/
|
|
29
|
+
toCliArgs(): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Create new world options (optionally with seed)
|
|
32
|
+
*/
|
|
33
|
+
static newWorld(seed?: string): WorldOptions;
|
|
34
|
+
/**
|
|
35
|
+
* Use existing world from worlds/ directory
|
|
36
|
+
*/
|
|
37
|
+
static existingWorld(worldName: string): WorldOptions;
|
|
38
|
+
/**
|
|
39
|
+
* Download world from URL (ZIP file)
|
|
40
|
+
*/
|
|
41
|
+
static downloadWorld(url: string): WorldOptions;
|
|
42
|
+
/**
|
|
43
|
+
* Default: new world without seed
|
|
44
|
+
*/
|
|
45
|
+
static default(): WorldOptions;
|
|
46
|
+
equals(other: WorldOptions): boolean;
|
|
47
|
+
toString(): string;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=WorldOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorldOptions.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/WorldOptions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,YAAY;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO;IAKP,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAwBrB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY;IAkB5C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAoBrD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IA2B/C;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,YAAY;IAI9B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IASpC,QAAQ,IAAI,MAAM;CAUnB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorldOptions Value Object
|
|
3
|
+
* Represents world configuration options for server creation
|
|
4
|
+
*/
|
|
5
|
+
export var WorldSetupType;
|
|
6
|
+
(function (WorldSetupType) {
|
|
7
|
+
WorldSetupType["NEW"] = "new";
|
|
8
|
+
WorldSetupType["EXISTING"] = "existing";
|
|
9
|
+
WorldSetupType["DOWNLOAD"] = "download";
|
|
10
|
+
})(WorldSetupType || (WorldSetupType = {}));
|
|
11
|
+
export class WorldOptions {
|
|
12
|
+
_data;
|
|
13
|
+
constructor(_data) {
|
|
14
|
+
this._data = _data;
|
|
15
|
+
Object.freeze(this);
|
|
16
|
+
Object.freeze(this._data);
|
|
17
|
+
}
|
|
18
|
+
get setupType() {
|
|
19
|
+
return this._data.setupType;
|
|
20
|
+
}
|
|
21
|
+
get seed() {
|
|
22
|
+
return this._data.seed;
|
|
23
|
+
}
|
|
24
|
+
get worldName() {
|
|
25
|
+
return this._data.worldName;
|
|
26
|
+
}
|
|
27
|
+
get downloadUrl() {
|
|
28
|
+
return this._data.downloadUrl;
|
|
29
|
+
}
|
|
30
|
+
get isNewWorld() {
|
|
31
|
+
return this._data.setupType === WorldSetupType.NEW;
|
|
32
|
+
}
|
|
33
|
+
get isExistingWorld() {
|
|
34
|
+
return this._data.setupType === WorldSetupType.EXISTING;
|
|
35
|
+
}
|
|
36
|
+
get isDownloadWorld() {
|
|
37
|
+
return this._data.setupType === WorldSetupType.DOWNLOAD;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Convert to CLI arguments for create-server.sh
|
|
41
|
+
*/
|
|
42
|
+
toCliArgs() {
|
|
43
|
+
const args = [];
|
|
44
|
+
switch (this._data.setupType) {
|
|
45
|
+
case WorldSetupType.NEW:
|
|
46
|
+
if (this._data.seed) {
|
|
47
|
+
args.push('-s', this._data.seed);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case WorldSetupType.EXISTING:
|
|
51
|
+
if (this._data.worldName) {
|
|
52
|
+
args.push('-w', this._data.worldName);
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
case WorldSetupType.DOWNLOAD:
|
|
56
|
+
if (this._data.downloadUrl) {
|
|
57
|
+
args.push('-u', this._data.downloadUrl);
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
return args;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create new world options (optionally with seed)
|
|
65
|
+
*/
|
|
66
|
+
static newWorld(seed) {
|
|
67
|
+
if (seed !== undefined) {
|
|
68
|
+
const trimmedSeed = seed.trim();
|
|
69
|
+
if (!trimmedSeed) {
|
|
70
|
+
throw new Error('World seed cannot be empty if provided');
|
|
71
|
+
}
|
|
72
|
+
// Seed can be any string or number
|
|
73
|
+
return new WorldOptions({
|
|
74
|
+
setupType: WorldSetupType.NEW,
|
|
75
|
+
seed: trimmedSeed,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return new WorldOptions({
|
|
79
|
+
setupType: WorldSetupType.NEW,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Use existing world from worlds/ directory
|
|
84
|
+
*/
|
|
85
|
+
static existingWorld(worldName) {
|
|
86
|
+
const trimmed = worldName.trim();
|
|
87
|
+
if (!trimmed) {
|
|
88
|
+
throw new Error('World name cannot be empty');
|
|
89
|
+
}
|
|
90
|
+
// World name validation: lowercase letters, numbers, hyphens, underscores
|
|
91
|
+
if (!/^[a-z0-9_-]+$/i.test(trimmed)) {
|
|
92
|
+
throw new Error('World name can only contain letters, numbers, hyphens, and underscores');
|
|
93
|
+
}
|
|
94
|
+
return new WorldOptions({
|
|
95
|
+
setupType: WorldSetupType.EXISTING,
|
|
96
|
+
worldName: trimmed,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Download world from URL (ZIP file)
|
|
101
|
+
*/
|
|
102
|
+
static downloadWorld(url) {
|
|
103
|
+
const trimmed = url.trim();
|
|
104
|
+
if (!trimmed) {
|
|
105
|
+
throw new Error('Download URL cannot be empty');
|
|
106
|
+
}
|
|
107
|
+
// Basic URL validation
|
|
108
|
+
try {
|
|
109
|
+
const parsedUrl = new URL(trimmed);
|
|
110
|
+
if (!['http:', 'https:'].includes(parsedUrl.protocol)) {
|
|
111
|
+
throw new Error('Download URL must use HTTP or HTTPS protocol');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
// Re-throw if it's our protocol error
|
|
116
|
+
if (error instanceof Error && error.message.includes('HTTP or HTTPS')) {
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
throw new Error(`Invalid download URL: ${trimmed}`);
|
|
120
|
+
}
|
|
121
|
+
return new WorldOptions({
|
|
122
|
+
setupType: WorldSetupType.DOWNLOAD,
|
|
123
|
+
downloadUrl: trimmed,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Default: new world without seed
|
|
128
|
+
*/
|
|
129
|
+
static default() {
|
|
130
|
+
return WorldOptions.newWorld();
|
|
131
|
+
}
|
|
132
|
+
equals(other) {
|
|
133
|
+
return (this._data.setupType === other._data.setupType &&
|
|
134
|
+
this._data.seed === other._data.seed &&
|
|
135
|
+
this._data.worldName === other._data.worldName &&
|
|
136
|
+
this._data.downloadUrl === other._data.downloadUrl);
|
|
137
|
+
}
|
|
138
|
+
toString() {
|
|
139
|
+
switch (this._data.setupType) {
|
|
140
|
+
case WorldSetupType.NEW:
|
|
141
|
+
return this._data.seed ? `New world (seed: ${this._data.seed})` : 'New world';
|
|
142
|
+
case WorldSetupType.EXISTING:
|
|
143
|
+
return `Existing world: ${this._data.worldName}`;
|
|
144
|
+
case WorldSetupType.DOWNLOAD:
|
|
145
|
+
return `Download from: ${this._data.downloadUrl}`;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=WorldOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorldOptions.js","sourceRoot":"","sources":["../../../src/domain/value-objects/WorldOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ServerName } from './ServerName.js';
|
|
2
|
+
export { ServerType, ServerTypeEnum, type ServerTypeInfo } from './ServerType.js';
|
|
3
|
+
export { McVersion } from './McVersion.js';
|
|
4
|
+
export { Memory } from './Memory.js';
|
|
5
|
+
export { WorldOptions, WorldSetupType, type WorldOptionsData } from './WorldOptions.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ServerName } from './ServerName.js';
|
|
2
|
+
export { ServerType, ServerTypeEnum } from './ServerType.js';
|
|
3
|
+
export { McVersion } from './McVersion.js';
|
|
4
|
+
export { Memory } from './Memory.js';
|
|
5
|
+
export { WorldOptions, WorldSetupType } from './WorldOptions.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAuB,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAyB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { type ContainerStatus, type HealthStatus, type ServerInfo, type RouterInfo, type AvahiInfo, type PlatformStatus, type McctlConfig, type ServerType as LegacyServerType, type ServerConfig as LegacyServerConfig, type EnvConfig, type LockStatus, type WorldLock as LegacyWorldLock, type BackupInfo, type BackupStatus, type PlayerInfo, type CommandResult, type ContainerStats, type PlayerListResult, type DetailedServerInfo, type RouterDetailInfo, type RouteInfo, } from './types/index.js';
|
|
2
|
+
export { Paths, Config, colors, log, getPackageRoot } from './utils/index.js';
|
|
3
|
+
export { checkDocker, checkDockerCompose, getContainerStatus, getContainerHealth, containerExists, getContainerHostname, getMcContainers, getRunningMcContainers, getServerInfo, getRouterInfo, getAvahiStatus, getPlatformStatus, startContainer, stopContainer, getContainerLogs, execScript, execScriptInteractive, getContainerStats, getContainerUptime, getOnlinePlayers, getDetailedServerInfo, getDetailedServerInfoWithPlayers, getRouterDetailInfo, formatBytes, } from './docker/index.js';
|
|
4
|
+
export { ServerName, ServerType, ServerTypeEnum, type ServerTypeInfo, McVersion, Memory, WorldOptions, WorldSetupType, type WorldOptionsData, Server, ServerStatus, type ServerConfig, World, WorldLockStatus, type WorldLock, } from './domain/index.js';
|
|
5
|
+
export * from './application/index.js';
|
|
6
|
+
export * from './infrastructure/index.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,IAAI,gBAAgB,EACnC,KAAK,YAAY,IAAI,kBAAkB,EACvC,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,IAAI,eAAe,EACjC,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EAErB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,mBAAmB,EACnB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,UAAU,EACV,UAAU,EACV,cAAc,EACd,KAAK,cAAc,EACnB,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,KAAK,gBAAgB,EAErB,MAAM,EACN,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,EACL,eAAe,EACf,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAG3B,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Re-export utilities
|
|
2
|
+
export { Paths, Config, colors, log, getPackageRoot } from './utils/index.js';
|
|
3
|
+
// Re-export docker utilities
|
|
4
|
+
export { checkDocker, checkDockerCompose, getContainerStatus, getContainerHealth, containerExists, getContainerHostname, getMcContainers, getRunningMcContainers, getServerInfo, getRouterInfo, getAvahiStatus, getPlatformStatus, startContainer, stopContainer, getContainerLogs, execScript, execScriptInteractive,
|
|
5
|
+
// New detailed functions
|
|
6
|
+
getContainerStats, getContainerUptime, getOnlinePlayers, getDetailedServerInfo, getDetailedServerInfoWithPlayers, getRouterDetailInfo, formatBytes, } from './docker/index.js';
|
|
7
|
+
// Re-export domain layer (Value Objects and Entities)
|
|
8
|
+
export {
|
|
9
|
+
// Value Objects
|
|
10
|
+
ServerName, ServerType, ServerTypeEnum, McVersion, Memory, WorldOptions, WorldSetupType,
|
|
11
|
+
// Entities
|
|
12
|
+
Server, ServerStatus, World, WorldLockStatus, } from './domain/index.js';
|
|
13
|
+
// Re-export application layer (ports and use-cases)
|
|
14
|
+
export * from './application/index.js';
|
|
15
|
+
// Re-export infrastructure layer (adapters)
|
|
16
|
+
export * from './infrastructure/index.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9E,6BAA6B;AAC7B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,qBAAqB;AACrB,yBAAyB;AACzB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,gCAAgC,EAChC,mBAAmB,EACnB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,sDAAsD;AACtD,OAAO;AACL,gBAAgB;AAChB,UAAU,EACV,UAAU,EACV,cAAc,EAEd,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc;AAEd,WAAW;AACX,MAAM,EACN,YAAY,EAEZ,KAAK,EACL,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,oDAAoD;AACpD,cAAc,wBAAwB,CAAC;AAEvC,4CAA4C;AAC5C,cAAc,2BAA2B,CAAC"}
|