@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,45 @@
1
+ import type { IDocProvider, DocServerTypeInfo, DocEnvVarInfo, DocVersionInfo, DocMemoryInfo } from '../../application/ports/outbound/IDocProvider.js';
2
+ /**
3
+ * DocsAdapter
4
+ * Parses docs/ directory for dynamic server configuration information
5
+ */
6
+ export declare class DocsAdapter implements IDocProvider {
7
+ private readonly docsDir;
8
+ private serverTypesCache;
9
+ private envVarsCache;
10
+ constructor(rootDir?: string);
11
+ /**
12
+ * Check if docs directory is available
13
+ */
14
+ isAvailable(): Promise<boolean>;
15
+ /**
16
+ * Get server types from docs/06-types-and-platforms.md
17
+ */
18
+ getServerTypes(): Promise<DocServerTypeInfo[]>;
19
+ /**
20
+ * Get environment variables from docs/03-variables.md
21
+ */
22
+ getEnvVars(category?: string): Promise<DocEnvVarInfo[]>;
23
+ /**
24
+ * Get version compatibility information
25
+ */
26
+ getVersionCompatibility(serverType: string): Promise<DocVersionInfo[]>;
27
+ /**
28
+ * Get common Minecraft versions
29
+ */
30
+ getCommonVersions(): Promise<string[]>;
31
+ /**
32
+ * Get recommended memory settings
33
+ */
34
+ getMemoryRecommendations(): Promise<DocMemoryInfo[]>;
35
+ private parseServerTypes;
36
+ private parseEnvVars;
37
+ private formatLabel;
38
+ private getDefaultJavaVersions;
39
+ private getJavaVersionForMc;
40
+ private getSupportedTypesForVersion;
41
+ private inferType;
42
+ private getDefaultServerTypes;
43
+ private getDefaultEnvVars;
44
+ }
45
+ //# sourceMappingURL=DocsAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsAdapter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/adapters/DocsAdapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,kDAAkD,CAAC;AAE1D;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,YAAY,CAAgC;gBAExC,OAAO,CAAC,EAAE,MAAM;IAM5B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAoBpD;;OAEG;IACG,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyB7D;;OAEG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiB5E;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB5C;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA4C1D,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,YAAY;IA2DpB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,2BAA2B;IAwBnC,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,qBAAqB;IA6E7B,OAAO,CAAC,iBAAiB;CA4F1B"}
@@ -0,0 +1,490 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { existsSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { Paths } from '../../utils/index.js';
5
+ import { ServerTypeEnum } from '../../domain/index.js';
6
+ /**
7
+ * DocsAdapter
8
+ * Parses docs/ directory for dynamic server configuration information
9
+ */
10
+ export class DocsAdapter {
11
+ docsDir;
12
+ serverTypesCache = null;
13
+ envVarsCache = null;
14
+ constructor(rootDir) {
15
+ const paths = new Paths(rootDir);
16
+ // docs/ is at project root, not platform root
17
+ this.docsDir = join(paths.root, '..', 'docs');
18
+ }
19
+ /**
20
+ * Check if docs directory is available
21
+ */
22
+ async isAvailable() {
23
+ const typesFile = join(this.docsDir, '06-types-and-platforms.md');
24
+ return existsSync(typesFile);
25
+ }
26
+ /**
27
+ * Get server types from docs/06-types-and-platforms.md
28
+ */
29
+ async getServerTypes() {
30
+ if (this.serverTypesCache) {
31
+ return this.serverTypesCache;
32
+ }
33
+ const filePath = join(this.docsDir, '06-types-and-platforms.md');
34
+ if (!existsSync(filePath)) {
35
+ return this.getDefaultServerTypes();
36
+ }
37
+ try {
38
+ const content = await readFile(filePath, 'utf-8');
39
+ this.serverTypesCache = this.parseServerTypes(content);
40
+ return this.serverTypesCache;
41
+ }
42
+ catch {
43
+ return this.getDefaultServerTypes();
44
+ }
45
+ }
46
+ /**
47
+ * Get environment variables from docs/03-variables.md
48
+ */
49
+ async getEnvVars(category) {
50
+ if (!this.envVarsCache) {
51
+ const filePath = join(this.docsDir, '03-variables.md');
52
+ if (!existsSync(filePath)) {
53
+ this.envVarsCache = this.getDefaultEnvVars();
54
+ }
55
+ else {
56
+ try {
57
+ const content = await readFile(filePath, 'utf-8');
58
+ this.envVarsCache = this.parseEnvVars(content);
59
+ }
60
+ catch {
61
+ this.envVarsCache = this.getDefaultEnvVars();
62
+ }
63
+ }
64
+ }
65
+ if (category) {
66
+ return this.envVarsCache.filter((v) => v.category.toLowerCase() === category.toLowerCase());
67
+ }
68
+ return this.envVarsCache;
69
+ }
70
+ /**
71
+ * Get version compatibility information
72
+ */
73
+ async getVersionCompatibility(serverType) {
74
+ // Version compatibility based on known data
75
+ const commonVersions = await this.getCommonVersions();
76
+ return commonVersions.map((version) => {
77
+ const javaVersion = this.getJavaVersionForMc(version);
78
+ const supportedTypes = this.getSupportedTypesForVersion(version);
79
+ return {
80
+ mcVersion: version,
81
+ javaVersion,
82
+ supportedTypes,
83
+ isLatest: version === 'LATEST',
84
+ };
85
+ });
86
+ }
87
+ /**
88
+ * Get common Minecraft versions
89
+ */
90
+ async getCommonVersions() {
91
+ return [
92
+ 'LATEST',
93
+ '1.21.4',
94
+ '1.21.3',
95
+ '1.21.1',
96
+ '1.21',
97
+ '1.20.4',
98
+ '1.20.1',
99
+ '1.19.4',
100
+ '1.18.2',
101
+ '1.16.5',
102
+ '1.12.2',
103
+ ];
104
+ }
105
+ /**
106
+ * Get recommended memory settings
107
+ */
108
+ async getMemoryRecommendations() {
109
+ return [
110
+ {
111
+ label: '2 GB',
112
+ value: '2G',
113
+ description: 'Minimum for vanilla servers',
114
+ recommended: false,
115
+ forMods: false,
116
+ },
117
+ {
118
+ label: '4 GB',
119
+ value: '4G',
120
+ description: 'Recommended for most servers',
121
+ recommended: true,
122
+ forMods: false,
123
+ },
124
+ {
125
+ label: '6 GB',
126
+ value: '6G',
127
+ description: 'For modded servers with 20-50 mods',
128
+ recommended: false,
129
+ forMods: true,
130
+ },
131
+ {
132
+ label: '8 GB',
133
+ value: '8G',
134
+ description: 'For large modpacks (50+ mods)',
135
+ recommended: false,
136
+ forMods: true,
137
+ },
138
+ {
139
+ label: '10 GB',
140
+ value: '10G',
141
+ description: 'For heavy modpacks and many players',
142
+ recommended: false,
143
+ forMods: true,
144
+ },
145
+ ];
146
+ }
147
+ // ========================================
148
+ // Private: Parsing Methods
149
+ // ========================================
150
+ parseServerTypes(content) {
151
+ const types = [];
152
+ const lines = content.split('\n');
153
+ // Parse the summary table at the end
154
+ const summaryStart = content.indexOf('## Server Type Summary');
155
+ if (summaryStart !== -1) {
156
+ const tableMatch = content
157
+ .slice(summaryStart)
158
+ .match(/\| Type \| Purpose \| Plugins \| Mods \|[\s\S]*?(?=\n\n|$)/);
159
+ if (tableMatch) {
160
+ const tableLines = tableMatch[0].split('\n').slice(2); // Skip header and separator
161
+ for (const line of tableLines) {
162
+ const match = line.match(/\|\s*`(\w+)`\s*\|\s*([^|]+)\s*\|\s*([OX-])\s*\|\s*([OX-])\s*\|/);
163
+ if (match) {
164
+ const typeValue = match[1];
165
+ const purpose = match[2];
166
+ const plugins = match[3];
167
+ const mods = match[4];
168
+ if (!typeValue || !purpose || !plugins || !mods)
169
+ continue;
170
+ const enumValue = typeValue;
171
+ if (Object.values(ServerTypeEnum).includes(enumValue)) {
172
+ types.push({
173
+ value: enumValue,
174
+ label: this.formatLabel(typeValue),
175
+ description: purpose.trim(),
176
+ supportsPlugins: plugins === 'O',
177
+ supportsMods: mods === 'O',
178
+ recommended: typeValue === 'PAPER',
179
+ javaVersions: this.getDefaultJavaVersions(typeValue),
180
+ });
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+ // If parsing failed, return defaults
187
+ if (types.length === 0) {
188
+ return this.getDefaultServerTypes();
189
+ }
190
+ return types;
191
+ }
192
+ parseEnvVars(content) {
193
+ const vars = [];
194
+ const sections = content.split(/^## /m).slice(1);
195
+ for (const section of sections) {
196
+ const lines = section.split('\n');
197
+ const categoryLine = lines[0];
198
+ const rest = lines.slice(1);
199
+ if (!categoryLine)
200
+ continue;
201
+ const category = categoryLine.trim();
202
+ const sectionContent = rest.join('\n');
203
+ // Parse tables in this section
204
+ const tableMatches = sectionContent.matchAll(/\| Variable \|[^|]*\|[^|]*\|?\n\|[-|]+\|\n([\s\S]*?)(?=\n\n|\n##|$)/g);
205
+ for (const tableMatch of tableMatches) {
206
+ const tableContent = tableMatch[1];
207
+ if (!tableContent)
208
+ continue;
209
+ const rows = tableContent.split('\n').filter((r) => r.includes('|'));
210
+ for (const row of rows) {
211
+ const cells = row
212
+ .split('|')
213
+ .map((c) => c.trim())
214
+ .filter(Boolean);
215
+ if (cells.length >= 2) {
216
+ const name = (cells[0] ?? '').replace(/`/g, '');
217
+ const defaultOrDesc = cells[1] ?? '';
218
+ const description = cells[2] ?? defaultOrDesc;
219
+ vars.push({
220
+ name,
221
+ type: this.inferType(name, description),
222
+ default: cells.length >= 3 ? (defaultOrDesc !== '-' ? defaultOrDesc : undefined) : undefined,
223
+ description: description.replace(/\*\*/g, ''),
224
+ required: description.toLowerCase().includes('required'),
225
+ category,
226
+ });
227
+ }
228
+ }
229
+ }
230
+ }
231
+ if (vars.length === 0) {
232
+ return this.getDefaultEnvVars();
233
+ }
234
+ return vars;
235
+ }
236
+ // ========================================
237
+ // Private: Helper Methods
238
+ // ========================================
239
+ formatLabel(type) {
240
+ const labels = {
241
+ VANILLA: 'Vanilla',
242
+ PAPER: 'Paper',
243
+ FORGE: 'Forge',
244
+ FABRIC: 'Fabric',
245
+ QUILT: 'Quilt',
246
+ SPIGOT: 'Spigot',
247
+ BUKKIT: 'Bukkit',
248
+ PURPUR: 'Purpur',
249
+ MOHIST: 'Mohist',
250
+ AUTO_CURSEFORGE: 'CurseForge Modpack',
251
+ MODRINTH: 'Modrinth Modpack',
252
+ };
253
+ return labels[type] || type;
254
+ }
255
+ getDefaultJavaVersions(type) {
256
+ // Based on server type, return recommended Java versions
257
+ switch (type.toUpperCase()) {
258
+ case 'FORGE':
259
+ return ['java8', 'java17', 'java21'];
260
+ case 'FABRIC':
261
+ case 'QUILT':
262
+ return ['java17', 'java21'];
263
+ default:
264
+ return ['java21', 'java17'];
265
+ }
266
+ }
267
+ getJavaVersionForMc(version) {
268
+ if (version === 'LATEST')
269
+ return 'java21';
270
+ const parts = version.split('.').map(Number);
271
+ const major = parts[0] ?? 0;
272
+ const minor = parts[1] ?? 0;
273
+ if (major === 1) {
274
+ if (minor >= 21)
275
+ return 'java21';
276
+ if (minor >= 18)
277
+ return 'java17';
278
+ if (minor >= 17)
279
+ return 'java16';
280
+ return 'java8';
281
+ }
282
+ return 'java21';
283
+ }
284
+ getSupportedTypesForVersion(version) {
285
+ if (version === 'LATEST') {
286
+ return ['VANILLA', 'PAPER', 'FABRIC', 'FORGE', 'QUILT'];
287
+ }
288
+ const parts = version.split('.').map(Number);
289
+ const major = parts[0] ?? 0;
290
+ const minor = parts[1] ?? 0;
291
+ if (major === 1) {
292
+ if (minor >= 20) {
293
+ return ['VANILLA', 'PAPER', 'FABRIC', 'FORGE', 'QUILT', 'PURPUR'];
294
+ }
295
+ if (minor >= 17) {
296
+ return ['VANILLA', 'PAPER', 'FABRIC', 'FORGE', 'SPIGOT'];
297
+ }
298
+ if (minor >= 12) {
299
+ return ['VANILLA', 'PAPER', 'FORGE', 'SPIGOT', 'BUKKIT'];
300
+ }
301
+ }
302
+ return ['VANILLA', 'FORGE'];
303
+ }
304
+ inferType(name, description) {
305
+ const lowerName = name.toLowerCase();
306
+ const lowerDesc = description.toLowerCase();
307
+ if (lowerName.includes('enable') || lowerDesc.includes('true/false')) {
308
+ return 'boolean';
309
+ }
310
+ if (lowerName.includes('port') || lowerName.includes('count') || lowerName.includes('max')) {
311
+ return 'number';
312
+ }
313
+ if (lowerName.includes('memory') || name === 'MEMORY') {
314
+ return 'memory';
315
+ }
316
+ return 'string';
317
+ }
318
+ // ========================================
319
+ // Private: Default Data
320
+ // ========================================
321
+ getDefaultServerTypes() {
322
+ return [
323
+ {
324
+ value: ServerTypeEnum.PAPER,
325
+ label: 'Paper',
326
+ description: 'High performance server with plugin support',
327
+ supportsPlugins: true,
328
+ supportsMods: false,
329
+ recommended: true,
330
+ javaVersions: ['java21', 'java17'],
331
+ },
332
+ {
333
+ value: ServerTypeEnum.VANILLA,
334
+ label: 'Vanilla',
335
+ description: 'Official Minecraft server',
336
+ supportsPlugins: false,
337
+ supportsMods: false,
338
+ recommended: false,
339
+ javaVersions: ['java21', 'java17'],
340
+ },
341
+ {
342
+ value: ServerTypeEnum.FORGE,
343
+ label: 'Forge',
344
+ description: 'Mod server for Forge mods',
345
+ supportsPlugins: false,
346
+ supportsMods: true,
347
+ recommended: false,
348
+ javaVersions: ['java8', 'java17', 'java21'],
349
+ },
350
+ {
351
+ value: ServerTypeEnum.FABRIC,
352
+ label: 'Fabric',
353
+ description: 'Lightweight modded server',
354
+ supportsPlugins: false,
355
+ supportsMods: true,
356
+ recommended: false,
357
+ javaVersions: ['java17', 'java21'],
358
+ },
359
+ {
360
+ value: ServerTypeEnum.QUILT,
361
+ label: 'Quilt',
362
+ description: 'Fabric-compatible mod loader',
363
+ supportsPlugins: false,
364
+ supportsMods: true,
365
+ recommended: false,
366
+ javaVersions: ['java17', 'java21'],
367
+ },
368
+ {
369
+ value: ServerTypeEnum.SPIGOT,
370
+ label: 'Spigot',
371
+ description: 'Modified Bukkit server with plugin support',
372
+ supportsPlugins: true,
373
+ supportsMods: false,
374
+ recommended: false,
375
+ javaVersions: ['java17', 'java21'],
376
+ },
377
+ {
378
+ value: ServerTypeEnum.BUKKIT,
379
+ label: 'Bukkit',
380
+ description: 'Classic plugin server',
381
+ supportsPlugins: true,
382
+ supportsMods: false,
383
+ recommended: false,
384
+ javaVersions: ['java17', 'java21'],
385
+ },
386
+ {
387
+ value: ServerTypeEnum.PURPUR,
388
+ label: 'Purpur',
389
+ description: 'Paper fork with additional features',
390
+ supportsPlugins: true,
391
+ supportsMods: false,
392
+ recommended: false,
393
+ javaVersions: ['java17', 'java21'],
394
+ },
395
+ ];
396
+ }
397
+ getDefaultEnvVars() {
398
+ return [
399
+ {
400
+ name: 'EULA',
401
+ type: 'boolean',
402
+ default: undefined,
403
+ description: 'Minecraft EULA agreement (Required: TRUE)',
404
+ required: true,
405
+ category: 'General Settings',
406
+ },
407
+ {
408
+ name: 'TYPE',
409
+ type: 'string',
410
+ default: 'VANILLA',
411
+ description: 'Server type',
412
+ required: false,
413
+ category: 'General Settings',
414
+ },
415
+ {
416
+ name: 'VERSION',
417
+ type: 'string',
418
+ default: 'LATEST',
419
+ description: 'Minecraft version',
420
+ required: false,
421
+ category: 'General Settings',
422
+ },
423
+ {
424
+ name: 'MEMORY',
425
+ type: 'memory',
426
+ default: '1G',
427
+ description: 'Initial/max heap memory',
428
+ required: false,
429
+ category: 'Memory Settings',
430
+ },
431
+ {
432
+ name: 'SEED',
433
+ type: 'string',
434
+ default: undefined,
435
+ description: 'World seed',
436
+ required: false,
437
+ category: 'Server Settings',
438
+ },
439
+ {
440
+ name: 'MOTD',
441
+ type: 'string',
442
+ default: undefined,
443
+ description: 'Server message',
444
+ required: false,
445
+ category: 'Server Settings',
446
+ },
447
+ {
448
+ name: 'DIFFICULTY',
449
+ type: 'string',
450
+ default: 'easy',
451
+ description: 'Difficulty (peaceful, easy, normal, hard)',
452
+ required: false,
453
+ category: 'Server Settings',
454
+ },
455
+ {
456
+ name: 'MODE',
457
+ type: 'string',
458
+ default: 'survival',
459
+ description: 'Game mode (survival, creative, adventure, spectator)',
460
+ required: false,
461
+ category: 'Server Settings',
462
+ },
463
+ {
464
+ name: 'MAX_PLAYERS',
465
+ type: 'number',
466
+ default: '20',
467
+ description: 'Maximum player count',
468
+ required: false,
469
+ category: 'Server Settings',
470
+ },
471
+ {
472
+ name: 'ENABLE_RCON',
473
+ type: 'boolean',
474
+ default: 'true',
475
+ description: 'Enable RCON',
476
+ required: false,
477
+ category: 'RCON',
478
+ },
479
+ {
480
+ name: 'RCON_PASSWORD',
481
+ type: 'string',
482
+ default: undefined,
483
+ description: 'RCON password',
484
+ required: false,
485
+ category: 'RCON',
486
+ },
487
+ ];
488
+ }
489
+ }
490
+ //# sourceMappingURL=DocsAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsAdapter.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/DocsAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACL,OAAO,CAAS;IACzB,gBAAgB,GAA+B,IAAI,CAAC;IACpD,YAAY,GAA2B,IAAI,CAAC;IAEpD,YAAY,OAAgB;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,8CAA8C;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;QAClE,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;QAEjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAiB;QAChC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAEvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,UAAkB;QAC9C,4CAA4C;QAC5C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEtD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAEjE,OAAO;gBACL,SAAS,EAAE,OAAO;gBAClB,WAAW;gBACX,cAAc;gBACd,QAAQ,EAAE,OAAO,KAAK,QAAQ;aAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB;QAC5B,OAAO;YACL;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;aACf;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,8BAA8B;gBAC3C,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,KAAK;aACf;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,oCAAoC;gBACjD,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,IAAI;aACd;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,IAAI;aACd;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,qCAAqC;gBAClD,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,IAAI;aACd;SACF,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,2BAA2B;IAC3B,2CAA2C;IAEnC,gBAAgB,CAAC,OAAe;QACtC,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,qCAAqC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,OAAO;iBACvB,KAAK,CAAC,YAAY,CAAC;iBACnB,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAEvE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;gBAEnF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,gEAAgE,CACjE,CAAC;oBACF,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAEtB,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;4BAAE,SAAS;wBAE1D,MAAM,SAAS,GAAG,SAA2B,CAAC;wBAE9C,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;4BACtD,KAAK,CAAC,IAAI,CAAC;gCACT,KAAK,EAAE,SAAS;gCAChB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gCAClC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;gCAC3B,eAAe,EAAE,OAAO,KAAK,GAAG;gCAChC,YAAY,EAAE,IAAI,KAAK,GAAG;gCAC1B,WAAW,EAAE,SAAS,KAAK,OAAO;gCAClC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;6BACrD,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,MAAM,IAAI,GAAoB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,YAAY;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvC,+BAA+B;YAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAC1C,sEAAsE,CACvE,CAAC;YAEF,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,YAAY;oBAAE,SAAS;gBAE5B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAErE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,GAAG;yBACd,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;yBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;oBACnB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAChD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBACrC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC;wBAE9C,IAAI,CAAC,IAAI,CAAC;4BACR,IAAI;4BACJ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;4BACvC,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;4BAC5F,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC7C,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;4BACxD,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,0BAA0B;IAC1B,2CAA2C;IAEnC,WAAW,CAAC,IAAY;QAC9B,MAAM,MAAM,GAA2B;YACrC,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,oBAAoB;YACrC,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC9B,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACzC,yDAAyD;QACzD,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,KAAK,OAAO;gBACV,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvC,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9B;gBACE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAAe;QACzC,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC;YACjC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC;YACjC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,2BAA2B,CAAC,OAAe;QACjD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,WAAmB;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3F,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2CAA2C;IAC3C,wBAAwB;IACxB,2CAA2C;IAEnC,qBAAqB;QAC3B,OAAO;YACL;gBACE,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,6CAA6C;gBAC1D,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,OAAO;gBAC7B,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,2BAA2B;gBACxC,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,2BAA2B;gBACxC,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;aAC5C;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,MAAM;gBAC5B,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,2BAA2B;gBACxC,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,8BAA8B;gBAC3C,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,MAAM;gBAC5B,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,4CAA4C;gBACzD,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,MAAM;gBAC5B,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,uBAAuB;gBACpC,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD;gBACE,KAAK,EAAE,cAAc,CAAC,MAAM;gBAC5B,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,qCAAqC;gBAClD,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACnC;SACF,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,kBAAkB;aAC7B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,kBAAkB;aAC7B;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,mBAAmB;gBAChC,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,kBAAkB;aAC7B;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,UAAU;gBACnB,WAAW,EAAE,sDAAsD;gBACnE,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM;gBACf,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,MAAM;aACjB;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,MAAM;aACjB;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ import { Paths } from '../../utils/index.js';
2
+ import { Server, ServerStatus } from '../../domain/index.js';
3
+ import type { IServerRepository, ServerConfigData } from '../../application/ports/outbound/IServerRepository.js';
4
+ /**
5
+ * ServerRepository
6
+ * Implements IServerRepository for server data access
7
+ */
8
+ export declare class ServerRepository implements IServerRepository {
9
+ private readonly paths;
10
+ private readonly serversDir;
11
+ constructor(paths?: Paths);
12
+ /**
13
+ * Get all servers
14
+ */
15
+ findAll(): Promise<Server[]>;
16
+ /**
17
+ * Find server by name
18
+ */
19
+ findByName(name: string): Promise<Server | null>;
20
+ /**
21
+ * Check if server exists
22
+ */
23
+ exists(name: string): Promise<boolean>;
24
+ /**
25
+ * Get server status
26
+ */
27
+ getStatus(name: string): Promise<ServerStatus>;
28
+ /**
29
+ * Get server configuration from config.env
30
+ */
31
+ getConfig(name: string): Promise<ServerConfigData | null>;
32
+ /**
33
+ * List server names
34
+ */
35
+ listNames(): Promise<string[]>;
36
+ /**
37
+ * Get running servers
38
+ */
39
+ findRunning(): Promise<Server[]>;
40
+ /**
41
+ * Get stopped servers
42
+ */
43
+ findStopped(): Promise<Server[]>;
44
+ /**
45
+ * Parse env file content
46
+ */
47
+ private parseEnvFile;
48
+ }
49
+ //# sourceMappingURL=ServerRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/adapters/ServerRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EACL,MAAM,EACN,YAAY,EAMb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uDAAuD,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,KAAK,CAAC,EAAE,KAAK;IAKzB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAclC;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6CtD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmCpD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA2B/D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBpC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC;;OAEG;IACH,OAAO,CAAC,YAAY;CA8BrB"}