@minecraft-docker/shared 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +97 -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/IModSourcePort.d.ts +71 -0
- package/dist/application/ports/outbound/IModSourcePort.d.ts.map +1 -0
- package/dist/application/ports/outbound/IModSourcePort.js +19 -0
- package/dist/application/ports/outbound/IModSourcePort.js.map +1 -0
- package/dist/application/ports/outbound/IPromptPort.d.ts +148 -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/IServiceManagerPort.d.ts +115 -0
- package/dist/application/ports/outbound/IServiceManagerPort.d.ts.map +1 -0
- package/dist/application/ports/outbound/IServiceManagerPort.js +2 -0
- package/dist/application/ports/outbound/IServiceManagerPort.js.map +1 -0
- package/dist/application/ports/outbound/IShellPort.d.ts +114 -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/IUserRepository.d.ts +42 -0
- package/dist/application/ports/outbound/IUserRepository.d.ts.map +1 -0
- package/dist/application/ports/outbound/IUserRepository.js +2 -0
- package/dist/application/ports/outbound/IUserRepository.js.map +1 -0
- package/dist/application/ports/outbound/IWorldRepository.d.ts +90 -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 +9 -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 +144 -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 +50 -0
- package/dist/application/use-cases/WorldManagementUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/WorldManagementUseCase.js +571 -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 +125 -0
- package/dist/docker/index.d.ts.map +1 -0
- package/dist/docker/index.js +557 -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/User.d.ts +77 -0
- package/dist/domain/entities/User.d.ts.map +1 -0
- package/dist/domain/entities/User.js +121 -0
- package/dist/domain/entities/User.js.map +1 -0
- package/dist/domain/entities/World.d.ts +76 -0
- package/dist/domain/entities/World.d.ts.map +1 -0
- package/dist/domain/entities/World.js +141 -0
- package/dist/domain/entities/World.js.map +1 -0
- package/dist/domain/entities/index.d.ts +4 -0
- package/dist/domain/entities/index.d.ts.map +1 -0
- package/dist/domain/entities/index.js +4 -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 +7 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/mod/ModDependency.d.ts +18 -0
- package/dist/domain/mod/ModDependency.d.ts.map +1 -0
- package/dist/domain/mod/ModDependency.js +5 -0
- package/dist/domain/mod/ModDependency.js.map +1 -0
- package/dist/domain/mod/ModFile.d.ts +27 -0
- package/dist/domain/mod/ModFile.d.ts.map +1 -0
- package/dist/domain/mod/ModFile.js +5 -0
- package/dist/domain/mod/ModFile.js.map +1 -0
- package/dist/domain/mod/ModProject.d.ts +36 -0
- package/dist/domain/mod/ModProject.d.ts.map +1 -0
- package/dist/domain/mod/ModProject.js +5 -0
- package/dist/domain/mod/ModProject.js.map +1 -0
- package/dist/domain/mod/ModSearchResult.d.ts +18 -0
- package/dist/domain/mod/ModSearchResult.d.ts.map +1 -0
- package/dist/domain/mod/ModSearchResult.js +5 -0
- package/dist/domain/mod/ModSearchResult.js.map +1 -0
- package/dist/domain/mod/ModVersion.d.ts +36 -0
- package/dist/domain/mod/ModVersion.d.ts.map +1 -0
- package/dist/domain/mod/ModVersion.js +5 -0
- package/dist/domain/mod/ModVersion.js.map +1 -0
- package/dist/domain/mod/index.d.ts +11 -0
- package/dist/domain/mod/index.d.ts.map +1 -0
- package/dist/domain/mod/index.js +6 -0
- package/dist/domain/mod/index.js.map +1 -0
- package/dist/domain/mod/types.d.ts +43 -0
- package/dist/domain/mod/types.d.ts.map +1 -0
- package/dist/domain/mod/types.js +6 -0
- package/dist/domain/mod/types.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/ProcessInfo.d.ts +99 -0
- package/dist/domain/value-objects/ProcessInfo.d.ts.map +1 -0
- package/dist/domain/value-objects/ProcessInfo.js +171 -0
- package/dist/domain/value-objects/ProcessInfo.js.map +1 -0
- package/dist/domain/value-objects/Role.d.ts +41 -0
- package/dist/domain/value-objects/Role.d.ts.map +1 -0
- package/dist/domain/value-objects/Role.js +66 -0
- package/dist/domain/value-objects/Role.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 +40 -0
- package/dist/domain/value-objects/ServerType.d.ts.map +1 -0
- package/dist/domain/value-objects/ServerType.js +136 -0
- package/dist/domain/value-objects/ServerType.js.map +1 -0
- package/dist/domain/value-objects/ServiceStatus.d.ts +64 -0
- package/dist/domain/value-objects/ServiceStatus.d.ts.map +1 -0
- package/dist/domain/value-objects/ServiceStatus.js +99 -0
- package/dist/domain/value-objects/ServiceStatus.js.map +1 -0
- package/dist/domain/value-objects/UserId.d.ts +21 -0
- package/dist/domain/value-objects/UserId.d.ts.map +1 -0
- package/dist/domain/value-objects/UserId.js +43 -0
- package/dist/domain/value-objects/UserId.js.map +1 -0
- package/dist/domain/value-objects/Username.d.ts +16 -0
- package/dist/domain/value-objects/Username.d.ts.map +1 -0
- package/dist/domain/value-objects/Username.js +46 -0
- package/dist/domain/value-objects/Username.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 +11 -0
- package/dist/domain/value-objects/index.d.ts.map +1 -0
- package/dist/domain/value-objects/index.js +13 -0
- package/dist/domain/value-objects/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/adapters/ApiPromptAdapter.d.ts +115 -0
- package/dist/infrastructure/adapters/ApiPromptAdapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/ApiPromptAdapter.js +268 -0
- package/dist/infrastructure/adapters/ApiPromptAdapter.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 +41 -0
- package/dist/infrastructure/adapters/ShellAdapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/ShellAdapter.js +198 -0
- package/dist/infrastructure/adapters/ShellAdapter.js.map +1 -0
- package/dist/infrastructure/adapters/SqliteUserRepository.d.ts +70 -0
- package/dist/infrastructure/adapters/SqliteUserRepository.d.ts.map +1 -0
- package/dist/infrastructure/adapters/SqliteUserRepository.js +149 -0
- package/dist/infrastructure/adapters/SqliteUserRepository.js.map +1 -0
- package/dist/infrastructure/adapters/WorldRepository.d.ts +67 -0
- package/dist/infrastructure/adapters/WorldRepository.d.ts.map +1 -0
- package/dist/infrastructure/adapters/WorldRepository.js +283 -0
- package/dist/infrastructure/adapters/WorldRepository.js.map +1 -0
- package/dist/infrastructure/adapters/YamlUserRepository.d.ts +67 -0
- package/dist/infrastructure/adapters/YamlUserRepository.d.ts.map +1 -0
- package/dist/infrastructure/adapters/YamlUserRepository.js +161 -0
- package/dist/infrastructure/adapters/YamlUserRepository.js.map +1 -0
- package/dist/infrastructure/adapters/index.d.ts +12 -0
- package/dist/infrastructure/adapters/index.d.ts.map +1 -0
- package/dist/infrastructure/adapters/index.js +12 -0
- package/dist/infrastructure/adapters/index.js.map +1 -0
- package/dist/infrastructure/config/Pm2EcosystemConfig.d.ts +192 -0
- package/dist/infrastructure/config/Pm2EcosystemConfig.d.ts.map +1 -0
- package/dist/infrastructure/config/Pm2EcosystemConfig.js +48 -0
- package/dist/infrastructure/config/Pm2EcosystemConfig.js.map +1 -0
- package/dist/infrastructure/config/index.d.ts +6 -0
- package/dist/infrastructure/config/index.d.ts.map +1 -0
- package/dist/infrastructure/config/index.js +6 -0
- package/dist/infrastructure/config/index.js.map +1 -0
- package/dist/infrastructure/factories/ModSourceFactory.d.ts +73 -0
- package/dist/infrastructure/factories/ModSourceFactory.d.ts.map +1 -0
- package/dist/infrastructure/factories/ModSourceFactory.js +98 -0
- package/dist/infrastructure/factories/ModSourceFactory.js.map +1 -0
- package/dist/infrastructure/factories/index.d.ts +5 -0
- package/dist/infrastructure/factories/index.d.ts.map +1 -0
- package/dist/infrastructure/factories/index.js +5 -0
- package/dist/infrastructure/factories/index.js.map +1 -0
- package/dist/infrastructure/index.d.ts +7 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +7 -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 +10 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McVersion.js","sourceRoot":"","sources":["../../../src/domain/value-objects/McVersion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Value Object
|
|
3
|
+
* Represents JVM memory allocation (e.g., "2G", "4G", "512M")
|
|
4
|
+
*/
|
|
5
|
+
export declare class Memory {
|
|
6
|
+
private readonly _value;
|
|
7
|
+
private readonly _bytes;
|
|
8
|
+
private constructor();
|
|
9
|
+
get value(): string;
|
|
10
|
+
get bytes(): number;
|
|
11
|
+
get megabytes(): number;
|
|
12
|
+
get gigabytes(): number;
|
|
13
|
+
/**
|
|
14
|
+
* Returns formatted string (e.g., "4G" or "512M")
|
|
15
|
+
*/
|
|
16
|
+
get formatted(): string;
|
|
17
|
+
static create(value: string): Memory;
|
|
18
|
+
static fromGigabytes(gb: number): Memory;
|
|
19
|
+
static fromMegabytes(mb: number): Memory;
|
|
20
|
+
/**
|
|
21
|
+
* Default memory allocation (4G)
|
|
22
|
+
*/
|
|
23
|
+
static default(): Memory;
|
|
24
|
+
/**
|
|
25
|
+
* Recommended minimum for vanilla servers
|
|
26
|
+
*/
|
|
27
|
+
static minimum(): Memory;
|
|
28
|
+
/**
|
|
29
|
+
* Recommended for modded servers
|
|
30
|
+
*/
|
|
31
|
+
static forMods(): Memory;
|
|
32
|
+
isGreaterThan(other: Memory): boolean;
|
|
33
|
+
isLessThan(other: Memory): boolean;
|
|
34
|
+
equals(other: Memory): boolean;
|
|
35
|
+
toString(): string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=Memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/Memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,MAAM;IAEf,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFzB,OAAO;IAOP,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA8CpC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIxC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9B,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -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":"AAAA;;;GAGG;AACH,MAAM,OAAO,MAAM;IAEE;IACA;IAFnB,YACmB,MAAc,EACd,MAAc;QADd,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QAE/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,2CAA2C;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,4DAA4D,CAC5F,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAEvB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,eAAe;QACf,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;QACnC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACzC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,gCAAgC;QAChC,MAAM,eAAe,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;YACjD,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG;YAChD,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;QAE5C,OAAO,IAAI,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,EAAU;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,EAAU;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,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,99 @@
|
|
|
1
|
+
import { ServiceStatus, ServiceStatusEnum } from './ServiceStatus.js';
|
|
2
|
+
/**
|
|
3
|
+
* Process monitoring metrics
|
|
4
|
+
*/
|
|
5
|
+
export interface ProcessMetrics {
|
|
6
|
+
memory: number;
|
|
7
|
+
cpu: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Process information data interface
|
|
11
|
+
*/
|
|
12
|
+
export interface ProcessInfoData {
|
|
13
|
+
pmId: number;
|
|
14
|
+
name: string;
|
|
15
|
+
status: ServiceStatusEnum;
|
|
16
|
+
pid?: number;
|
|
17
|
+
cpu?: number;
|
|
18
|
+
memory?: number;
|
|
19
|
+
uptime?: number;
|
|
20
|
+
restarts?: number;
|
|
21
|
+
createdAt?: Date;
|
|
22
|
+
interpreter?: string;
|
|
23
|
+
scriptPath?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* ProcessInfo Value Object
|
|
27
|
+
* Represents information about a managed service process
|
|
28
|
+
*/
|
|
29
|
+
export declare class ProcessInfo {
|
|
30
|
+
private readonly _data;
|
|
31
|
+
private constructor();
|
|
32
|
+
get pmId(): number;
|
|
33
|
+
get name(): string;
|
|
34
|
+
get status(): ServiceStatus;
|
|
35
|
+
get statusValue(): ServiceStatusEnum;
|
|
36
|
+
get pid(): number | undefined;
|
|
37
|
+
get cpu(): number | undefined;
|
|
38
|
+
get memory(): number | undefined;
|
|
39
|
+
get uptime(): number | undefined;
|
|
40
|
+
get restarts(): number | undefined;
|
|
41
|
+
get createdAt(): Date | undefined;
|
|
42
|
+
get interpreter(): string | undefined;
|
|
43
|
+
get scriptPath(): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Check if process is online
|
|
46
|
+
*/
|
|
47
|
+
get isOnline(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Check if process is stopped
|
|
50
|
+
*/
|
|
51
|
+
get isStopped(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Check if process has errored
|
|
54
|
+
*/
|
|
55
|
+
get isErrored(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Get formatted memory usage string
|
|
58
|
+
*/
|
|
59
|
+
get memoryFormatted(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Get formatted uptime string
|
|
62
|
+
*/
|
|
63
|
+
get uptimeFormatted(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Get metrics object
|
|
66
|
+
*/
|
|
67
|
+
get metrics(): ProcessMetrics | null;
|
|
68
|
+
/**
|
|
69
|
+
* Create a ProcessInfo from data
|
|
70
|
+
*/
|
|
71
|
+
static create(data: ProcessInfoData): ProcessInfo;
|
|
72
|
+
/**
|
|
73
|
+
* Create from PM2 process description
|
|
74
|
+
*/
|
|
75
|
+
static fromPm2(pm2Process: {
|
|
76
|
+
pm_id?: number;
|
|
77
|
+
name?: string;
|
|
78
|
+
pm2_env?: {
|
|
79
|
+
status?: string;
|
|
80
|
+
pm_uptime?: number;
|
|
81
|
+
restart_time?: number;
|
|
82
|
+
created_at?: number;
|
|
83
|
+
exec_interpreter?: string;
|
|
84
|
+
pm_exec_path?: string;
|
|
85
|
+
};
|
|
86
|
+
pid?: number;
|
|
87
|
+
monit?: {
|
|
88
|
+
cpu?: number;
|
|
89
|
+
memory?: number;
|
|
90
|
+
};
|
|
91
|
+
}): ProcessInfo;
|
|
92
|
+
/**
|
|
93
|
+
* Convert to plain object
|
|
94
|
+
*/
|
|
95
|
+
toJSON(): ProcessInfoData;
|
|
96
|
+
equals(other: ProcessInfo): boolean;
|
|
97
|
+
toString(): string;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=ProcessInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessInfo.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/ProcessInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACF,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO;IAIP,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,SAAS,IAAI,IAAI,GAAG,SAAS,CAEhC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAG5B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAG5B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,cAAc,GAAG,IAAI,CAQnC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW;IAUjD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,GAAG,WAAW;IAmBf;;OAEG;IACH,MAAM,IAAI,eAAe;IAIzB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAInC,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { ServiceStatus, ServiceStatusEnum } from './ServiceStatus.js';
|
|
2
|
+
/**
|
|
3
|
+
* ProcessInfo Value Object
|
|
4
|
+
* Represents information about a managed service process
|
|
5
|
+
*/
|
|
6
|
+
export class ProcessInfo {
|
|
7
|
+
_data;
|
|
8
|
+
constructor(_data) {
|
|
9
|
+
this._data = _data;
|
|
10
|
+
Object.freeze(this);
|
|
11
|
+
}
|
|
12
|
+
get pmId() {
|
|
13
|
+
return this._data.pmId;
|
|
14
|
+
}
|
|
15
|
+
get name() {
|
|
16
|
+
return this._data.name;
|
|
17
|
+
}
|
|
18
|
+
get status() {
|
|
19
|
+
return ServiceStatus.create(this._data.status);
|
|
20
|
+
}
|
|
21
|
+
get statusValue() {
|
|
22
|
+
return this._data.status;
|
|
23
|
+
}
|
|
24
|
+
get pid() {
|
|
25
|
+
return this._data.pid;
|
|
26
|
+
}
|
|
27
|
+
get cpu() {
|
|
28
|
+
return this._data.cpu;
|
|
29
|
+
}
|
|
30
|
+
get memory() {
|
|
31
|
+
return this._data.memory;
|
|
32
|
+
}
|
|
33
|
+
get uptime() {
|
|
34
|
+
return this._data.uptime;
|
|
35
|
+
}
|
|
36
|
+
get restarts() {
|
|
37
|
+
return this._data.restarts;
|
|
38
|
+
}
|
|
39
|
+
get createdAt() {
|
|
40
|
+
return this._data.createdAt;
|
|
41
|
+
}
|
|
42
|
+
get interpreter() {
|
|
43
|
+
return this._data.interpreter;
|
|
44
|
+
}
|
|
45
|
+
get scriptPath() {
|
|
46
|
+
return this._data.scriptPath;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Check if process is online
|
|
50
|
+
*/
|
|
51
|
+
get isOnline() {
|
|
52
|
+
return this._data.status === ServiceStatusEnum.ONLINE;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if process is stopped
|
|
56
|
+
*/
|
|
57
|
+
get isStopped() {
|
|
58
|
+
return this._data.status === ServiceStatusEnum.STOPPED;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check if process has errored
|
|
62
|
+
*/
|
|
63
|
+
get isErrored() {
|
|
64
|
+
return this._data.status === ServiceStatusEnum.ERRORED;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get formatted memory usage string
|
|
68
|
+
*/
|
|
69
|
+
get memoryFormatted() {
|
|
70
|
+
if (this._data.memory === undefined)
|
|
71
|
+
return 'N/A';
|
|
72
|
+
return formatBytes(this._data.memory);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get formatted uptime string
|
|
76
|
+
*/
|
|
77
|
+
get uptimeFormatted() {
|
|
78
|
+
if (this._data.uptime === undefined)
|
|
79
|
+
return 'N/A';
|
|
80
|
+
return formatDuration(this._data.uptime);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get metrics object
|
|
84
|
+
*/
|
|
85
|
+
get metrics() {
|
|
86
|
+
if (this._data.cpu === undefined || this._data.memory === undefined) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
cpu: this._data.cpu,
|
|
91
|
+
memory: this._data.memory,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create a ProcessInfo from data
|
|
96
|
+
*/
|
|
97
|
+
static create(data) {
|
|
98
|
+
if (data.pmId < 0) {
|
|
99
|
+
throw new Error('PM2 ID cannot be negative');
|
|
100
|
+
}
|
|
101
|
+
if (!data.name || data.name.trim() === '') {
|
|
102
|
+
throw new Error('Process name is required');
|
|
103
|
+
}
|
|
104
|
+
return new ProcessInfo(data);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create from PM2 process description
|
|
108
|
+
*/
|
|
109
|
+
static fromPm2(pm2Process) {
|
|
110
|
+
const env = pm2Process.pm2_env || {};
|
|
111
|
+
const monit = pm2Process.monit || {};
|
|
112
|
+
return ProcessInfo.create({
|
|
113
|
+
pmId: pm2Process.pm_id ?? 0,
|
|
114
|
+
name: pm2Process.name ?? 'unknown',
|
|
115
|
+
status: env.status ?? ServiceStatusEnum.STOPPED,
|
|
116
|
+
pid: pm2Process.pid,
|
|
117
|
+
cpu: monit.cpu,
|
|
118
|
+
memory: monit.memory,
|
|
119
|
+
uptime: env.pm_uptime,
|
|
120
|
+
restarts: env.restart_time,
|
|
121
|
+
createdAt: env.created_at ? new Date(env.created_at) : undefined,
|
|
122
|
+
interpreter: env.exec_interpreter,
|
|
123
|
+
scriptPath: env.pm_exec_path,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Convert to plain object
|
|
128
|
+
*/
|
|
129
|
+
toJSON() {
|
|
130
|
+
return { ...this._data };
|
|
131
|
+
}
|
|
132
|
+
equals(other) {
|
|
133
|
+
return this._data.pmId === other._data.pmId && this._data.name === other._data.name;
|
|
134
|
+
}
|
|
135
|
+
toString() {
|
|
136
|
+
return `${this._data.name} (PM2 ID: ${this._data.pmId}, Status: ${this._data.status})`;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Format bytes to human readable string
|
|
141
|
+
*/
|
|
142
|
+
function formatBytes(bytes) {
|
|
143
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
144
|
+
let unitIndex = 0;
|
|
145
|
+
let size = bytes;
|
|
146
|
+
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
147
|
+
size /= 1024;
|
|
148
|
+
unitIndex++;
|
|
149
|
+
}
|
|
150
|
+
return `${size.toFixed(1)} ${units[unitIndex]}`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Format duration in milliseconds to human readable string
|
|
154
|
+
*/
|
|
155
|
+
function formatDuration(ms) {
|
|
156
|
+
const seconds = Math.floor(ms / 1000);
|
|
157
|
+
const minutes = Math.floor(seconds / 60);
|
|
158
|
+
const hours = Math.floor(minutes / 60);
|
|
159
|
+
const days = Math.floor(hours / 24);
|
|
160
|
+
if (days > 0) {
|
|
161
|
+
return `${days}d ${hours % 24}h`;
|
|
162
|
+
}
|
|
163
|
+
if (hours > 0) {
|
|
164
|
+
return `${hours}h ${minutes % 60}m`;
|
|
165
|
+
}
|
|
166
|
+
if (minutes > 0) {
|
|
167
|
+
return `${minutes}m ${seconds % 60}s`;
|
|
168
|
+
}
|
|
169
|
+
return `${seconds}s`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=ProcessInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessInfo.js","sourceRoot":"","sources":["../../../src/domain/value-objects/ProcessInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Enum
|
|
3
|
+
* Defines available user roles in the system
|
|
4
|
+
*/
|
|
5
|
+
export declare enum RoleEnum {
|
|
6
|
+
ADMIN = "admin",
|
|
7
|
+
VIEWER = "viewer"
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Role Value Object
|
|
11
|
+
* Represents a validated user role
|
|
12
|
+
*/
|
|
13
|
+
export declare class Role {
|
|
14
|
+
private readonly _value;
|
|
15
|
+
private static readonly VALID_ROLES;
|
|
16
|
+
private constructor();
|
|
17
|
+
get value(): RoleEnum;
|
|
18
|
+
/**
|
|
19
|
+
* Create a Role from a string value
|
|
20
|
+
*/
|
|
21
|
+
static create(value: string): Role;
|
|
22
|
+
/**
|
|
23
|
+
* Create an admin role
|
|
24
|
+
*/
|
|
25
|
+
static admin(): Role;
|
|
26
|
+
/**
|
|
27
|
+
* Create a viewer role
|
|
28
|
+
*/
|
|
29
|
+
static viewer(): Role;
|
|
30
|
+
/**
|
|
31
|
+
* Check if this role is admin
|
|
32
|
+
*/
|
|
33
|
+
get isAdmin(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Check if this role is viewer
|
|
36
|
+
*/
|
|
37
|
+
get isViewer(): boolean;
|
|
38
|
+
equals(other: Role): boolean;
|
|
39
|
+
toString(): string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=Role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Role.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/Role.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;;GAGG;AACH,qBAAa,IAAI;IAGK,OAAO,CAAC,QAAQ,CAAC,MAAM;IAF3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAEvE,OAAO;IAIP,IAAI,KAAK,IAAI,QAAQ,CAEpB;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAalC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAI5B,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Enum
|
|
3
|
+
* Defines available user roles in the system
|
|
4
|
+
*/
|
|
5
|
+
export var RoleEnum;
|
|
6
|
+
(function (RoleEnum) {
|
|
7
|
+
RoleEnum["ADMIN"] = "admin";
|
|
8
|
+
RoleEnum["VIEWER"] = "viewer";
|
|
9
|
+
})(RoleEnum || (RoleEnum = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Role Value Object
|
|
12
|
+
* Represents a validated user role
|
|
13
|
+
*/
|
|
14
|
+
export class Role {
|
|
15
|
+
_value;
|
|
16
|
+
static VALID_ROLES = new Set(Object.values(RoleEnum));
|
|
17
|
+
constructor(_value) {
|
|
18
|
+
this._value = _value;
|
|
19
|
+
Object.freeze(this);
|
|
20
|
+
}
|
|
21
|
+
get value() {
|
|
22
|
+
return this._value;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create a Role from a string value
|
|
26
|
+
*/
|
|
27
|
+
static create(value) {
|
|
28
|
+
const normalized = value.trim().toLowerCase();
|
|
29
|
+
if (!Role.VALID_ROLES.has(normalized)) {
|
|
30
|
+
const validRoles = Array.from(Role.VALID_ROLES).join(', ');
|
|
31
|
+
throw new Error(`Invalid role: ${value}. Valid roles are: ${validRoles}`);
|
|
32
|
+
}
|
|
33
|
+
return new Role(normalized);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create an admin role
|
|
37
|
+
*/
|
|
38
|
+
static admin() {
|
|
39
|
+
return new Role(RoleEnum.ADMIN);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a viewer role
|
|
43
|
+
*/
|
|
44
|
+
static viewer() {
|
|
45
|
+
return new Role(RoleEnum.VIEWER);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if this role is admin
|
|
49
|
+
*/
|
|
50
|
+
get isAdmin() {
|
|
51
|
+
return this._value === RoleEnum.ADMIN;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if this role is viewer
|
|
55
|
+
*/
|
|
56
|
+
get isViewer() {
|
|
57
|
+
return this._value === RoleEnum.VIEWER;
|
|
58
|
+
}
|
|
59
|
+
equals(other) {
|
|
60
|
+
return this._value === other._value;
|
|
61
|
+
}
|
|
62
|
+
toString() {
|
|
63
|
+
return this._value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=Role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../src/domain/value-objects/Role.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED;;;GAGG;AACH,MAAM,OAAO,IAAI;IAGsB;IAF7B,MAAM,CAAU,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,YAAqC,MAAgB;QAAhB,WAAM,GAAN,MAAM,CAAU;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAc,CAAC;QAE1D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,sBAAsB,UAAU,EAAE,CACzD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAW;QAChB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC"}
|
|
@@ -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"}
|