@minecraft-docker/mcctl 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.
Files changed (193) hide show
  1. package/dist/application/index.d.ts +2 -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/commands/backup.d.ts +16 -0
  6. package/dist/commands/backup.d.ts.map +1 -0
  7. package/dist/commands/backup.js +182 -0
  8. package/dist/commands/backup.js.map +1 -0
  9. package/dist/commands/ban.d.ts +14 -0
  10. package/dist/commands/ban.d.ts.map +1 -0
  11. package/dist/commands/ban.js +418 -0
  12. package/dist/commands/ban.js.map +1 -0
  13. package/dist/commands/config.d.ts +18 -0
  14. package/dist/commands/config.d.ts.map +1 -0
  15. package/dist/commands/config.js +106 -0
  16. package/dist/commands/config.js.map +1 -0
  17. package/dist/commands/console/api.d.ts +19 -0
  18. package/dist/commands/console/api.d.ts.map +1 -0
  19. package/dist/commands/console/api.js +399 -0
  20. package/dist/commands/console/api.js.map +1 -0
  21. package/dist/commands/console/index.d.ts +10 -0
  22. package/dist/commands/console/index.d.ts.map +1 -0
  23. package/dist/commands/console/index.js +12 -0
  24. package/dist/commands/console/index.js.map +1 -0
  25. package/dist/commands/console/init.d.ts +47 -0
  26. package/dist/commands/console/init.d.ts.map +1 -0
  27. package/dist/commands/console/init.js +491 -0
  28. package/dist/commands/console/init.js.map +1 -0
  29. package/dist/commands/console/remove.d.ts +25 -0
  30. package/dist/commands/console/remove.d.ts.map +1 -0
  31. package/dist/commands/console/remove.js +189 -0
  32. package/dist/commands/console/remove.js.map +1 -0
  33. package/dist/commands/console/service.d.ts +40 -0
  34. package/dist/commands/console/service.d.ts.map +1 -0
  35. package/dist/commands/console/service.js +321 -0
  36. package/dist/commands/console/service.js.map +1 -0
  37. package/dist/commands/console/user.d.ts +17 -0
  38. package/dist/commands/console/user.d.ts.map +1 -0
  39. package/dist/commands/console/user.js +431 -0
  40. package/dist/commands/console/user.js.map +1 -0
  41. package/dist/commands/create.d.ts +22 -0
  42. package/dist/commands/create.d.ts.map +1 -0
  43. package/dist/commands/create.js +86 -0
  44. package/dist/commands/create.js.map +1 -0
  45. package/dist/commands/delete.d.ts +17 -0
  46. package/dist/commands/delete.d.ts.map +1 -0
  47. package/dist/commands/delete.js +74 -0
  48. package/dist/commands/delete.js.map +1 -0
  49. package/dist/commands/exec.d.ts +10 -0
  50. package/dist/commands/exec.d.ts.map +1 -0
  51. package/dist/commands/exec.js +29 -0
  52. package/dist/commands/exec.js.map +1 -0
  53. package/dist/commands/index.d.ts +21 -0
  54. package/dist/commands/index.d.ts.map +1 -0
  55. package/dist/commands/index.js +23 -0
  56. package/dist/commands/index.js.map +1 -0
  57. package/dist/commands/init.d.ts +9 -0
  58. package/dist/commands/init.d.ts.map +1 -0
  59. package/dist/commands/init.js +218 -0
  60. package/dist/commands/init.js.map +1 -0
  61. package/dist/commands/kick.d.ts +12 -0
  62. package/dist/commands/kick.d.ts.map +1 -0
  63. package/dist/commands/kick.js +71 -0
  64. package/dist/commands/kick.js.map +1 -0
  65. package/dist/commands/migrate.d.ts +18 -0
  66. package/dist/commands/migrate.d.ts.map +1 -0
  67. package/dist/commands/migrate.js +470 -0
  68. package/dist/commands/migrate.js.map +1 -0
  69. package/dist/commands/mod.d.ts +19 -0
  70. package/dist/commands/mod.d.ts.map +1 -0
  71. package/dist/commands/mod.js +441 -0
  72. package/dist/commands/mod.js.map +1 -0
  73. package/dist/commands/msg.d.ts +12 -0
  74. package/dist/commands/msg.d.ts.map +1 -0
  75. package/dist/commands/msg.js +273 -0
  76. package/dist/commands/msg.js.map +1 -0
  77. package/dist/commands/op.d.ts +12 -0
  78. package/dist/commands/op.d.ts.map +1 -0
  79. package/dist/commands/op.js +220 -0
  80. package/dist/commands/op.js.map +1 -0
  81. package/dist/commands/player-online.d.ts +11 -0
  82. package/dist/commands/player-online.d.ts.map +1 -0
  83. package/dist/commands/player-online.js +153 -0
  84. package/dist/commands/player-online.js.map +1 -0
  85. package/dist/commands/player.d.ts +18 -0
  86. package/dist/commands/player.d.ts.map +1 -0
  87. package/dist/commands/player.js +352 -0
  88. package/dist/commands/player.js.map +1 -0
  89. package/dist/commands/server-backup.d.ts +36 -0
  90. package/dist/commands/server-backup.d.ts.map +1 -0
  91. package/dist/commands/server-backup.js +320 -0
  92. package/dist/commands/server-backup.js.map +1 -0
  93. package/dist/commands/server-restore.d.ts +13 -0
  94. package/dist/commands/server-restore.d.ts.map +1 -0
  95. package/dist/commands/server-restore.js +294 -0
  96. package/dist/commands/server-restore.js.map +1 -0
  97. package/dist/commands/status.d.ts +13 -0
  98. package/dist/commands/status.d.ts.map +1 -0
  99. package/dist/commands/status.js +325 -0
  100. package/dist/commands/status.js.map +1 -0
  101. package/dist/commands/whitelist.d.ts +12 -0
  102. package/dist/commands/whitelist.d.ts.map +1 -0
  103. package/dist/commands/whitelist.js +316 -0
  104. package/dist/commands/whitelist.js.map +1 -0
  105. package/dist/commands/world.d.ts +18 -0
  106. package/dist/commands/world.d.ts.map +1 -0
  107. package/dist/commands/world.js +238 -0
  108. package/dist/commands/world.js.map +1 -0
  109. package/dist/domain/index.d.ts +2 -0
  110. package/dist/domain/index.d.ts.map +1 -0
  111. package/dist/domain/index.js +7 -0
  112. package/dist/domain/index.js.map +1 -0
  113. package/dist/index.d.ts +3 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +766 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/infrastructure/adapters/ClackPromptAdapter.d.ts +30 -0
  118. package/dist/infrastructure/adapters/ClackPromptAdapter.d.ts.map +1 -0
  119. package/dist/infrastructure/adapters/ClackPromptAdapter.js +430 -0
  120. package/dist/infrastructure/adapters/ClackPromptAdapter.js.map +1 -0
  121. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.d.ts +78 -0
  122. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.d.ts.map +1 -0
  123. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.js +391 -0
  124. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.js.map +1 -0
  125. package/dist/infrastructure/adapters/index.d.ts +4 -0
  126. package/dist/infrastructure/adapters/index.d.ts.map +1 -0
  127. package/dist/infrastructure/adapters/index.js +6 -0
  128. package/dist/infrastructure/adapters/index.js.map +1 -0
  129. package/dist/infrastructure/di/container.d.ts +47 -0
  130. package/dist/infrastructure/di/container.d.ts.map +1 -0
  131. package/dist/infrastructure/di/container.js +140 -0
  132. package/dist/infrastructure/di/container.js.map +1 -0
  133. package/dist/infrastructure/di/index.d.ts +2 -0
  134. package/dist/infrastructure/di/index.d.ts.map +1 -0
  135. package/dist/infrastructure/di/index.js +2 -0
  136. package/dist/infrastructure/di/index.js.map +1 -0
  137. package/dist/infrastructure/index.d.ts +5 -0
  138. package/dist/infrastructure/index.d.ts.map +1 -0
  139. package/dist/infrastructure/index.js +8 -0
  140. package/dist/infrastructure/index.js.map +1 -0
  141. package/dist/lib/admin-config.d.ts +66 -0
  142. package/dist/lib/admin-config.d.ts.map +1 -0
  143. package/dist/lib/admin-config.js +130 -0
  144. package/dist/lib/admin-config.js.map +1 -0
  145. package/dist/lib/mojang-api.d.ts +51 -0
  146. package/dist/lib/mojang-api.d.ts.map +1 -0
  147. package/dist/lib/mojang-api.js +136 -0
  148. package/dist/lib/mojang-api.js.map +1 -0
  149. package/dist/lib/player-cache.d.ts +79 -0
  150. package/dist/lib/player-cache.d.ts.map +1 -0
  151. package/dist/lib/player-cache.js +302 -0
  152. package/dist/lib/player-cache.js.map +1 -0
  153. package/dist/lib/player-json.d.ts +69 -0
  154. package/dist/lib/player-json.d.ts.map +1 -0
  155. package/dist/lib/player-json.js +96 -0
  156. package/dist/lib/player-json.js.map +1 -0
  157. package/dist/lib/pm2-utils.d.ts +71 -0
  158. package/dist/lib/pm2-utils.d.ts.map +1 -0
  159. package/dist/lib/pm2-utils.js +155 -0
  160. package/dist/lib/pm2-utils.js.map +1 -0
  161. package/dist/lib/prompts/action-select.d.ts +23 -0
  162. package/dist/lib/prompts/action-select.d.ts.map +1 -0
  163. package/dist/lib/prompts/action-select.js +124 -0
  164. package/dist/lib/prompts/action-select.js.map +1 -0
  165. package/dist/lib/prompts/index.d.ts +7 -0
  166. package/dist/lib/prompts/index.d.ts.map +1 -0
  167. package/dist/lib/prompts/index.js +7 -0
  168. package/dist/lib/prompts/index.js.map +1 -0
  169. package/dist/lib/prompts/ip-select.d.ts +25 -0
  170. package/dist/lib/prompts/ip-select.d.ts.map +1 -0
  171. package/dist/lib/prompts/ip-select.js +255 -0
  172. package/dist/lib/prompts/ip-select.js.map +1 -0
  173. package/dist/lib/prompts/player-select.d.ts +25 -0
  174. package/dist/lib/prompts/player-select.d.ts.map +1 -0
  175. package/dist/lib/prompts/player-select.js +122 -0
  176. package/dist/lib/prompts/player-select.js.map +1 -0
  177. package/dist/lib/prompts/server-select.d.ts +26 -0
  178. package/dist/lib/prompts/server-select.d.ts.map +1 -0
  179. package/dist/lib/prompts/server-select.js +99 -0
  180. package/dist/lib/prompts/server-select.js.map +1 -0
  181. package/dist/lib/rcon.d.ts +53 -0
  182. package/dist/lib/rcon.d.ts.map +1 -0
  183. package/dist/lib/rcon.js +131 -0
  184. package/dist/lib/rcon.js.map +1 -0
  185. package/dist/lib/shell.d.ts +111 -0
  186. package/dist/lib/shell.d.ts.map +1 -0
  187. package/dist/lib/shell.js +321 -0
  188. package/dist/lib/shell.js.map +1 -0
  189. package/dist/lib/sudo-utils.d.ts +14 -0
  190. package/dist/lib/sudo-utils.d.ts.map +1 -0
  191. package/dist/lib/sudo-utils.js +53 -0
  192. package/dist/lib/sudo-utils.js.map +1 -0
  193. package/package.json +8 -2
@@ -0,0 +1,391 @@
1
+ /**
2
+ * PM2 Service Manager Adapter
3
+ *
4
+ * Implements IServiceManagerPort using PM2 for process management.
5
+ * Manages mcctl-api and mcctl-console services via PM2.
6
+ */
7
+ import pm2 from 'pm2';
8
+ import { existsSync } from 'node:fs';
9
+ import { ProcessInfo, } from '@minecraft-docker/shared';
10
+ import { getEcosystemConfigPath, getPm2LogPaths, readLogFile, normalizePm2Status, formatPm2Error, PM2_SERVICE_NAMES, } from '../../lib/pm2-utils.js';
11
+ /**
12
+ * Promisified PM2 functions
13
+ */
14
+ function pm2Connect(noDaemonMode = false) {
15
+ return new Promise((resolve, reject) => {
16
+ pm2.connect(noDaemonMode, (err) => {
17
+ if (err)
18
+ reject(err);
19
+ else
20
+ resolve();
21
+ });
22
+ });
23
+ }
24
+ function pm2List() {
25
+ return new Promise((resolve, reject) => {
26
+ pm2.list((err, list) => {
27
+ if (err)
28
+ reject(err);
29
+ else
30
+ resolve(list);
31
+ });
32
+ });
33
+ }
34
+ function pm2Start(options) {
35
+ return new Promise((resolve, reject) => {
36
+ pm2.start(options, (err, proc) => {
37
+ if (err)
38
+ reject(err);
39
+ else
40
+ resolve(proc);
41
+ });
42
+ });
43
+ }
44
+ function pm2StartConfig(configPath, appName) {
45
+ return new Promise((resolve, reject) => {
46
+ if (appName) {
47
+ // Start only the specific app from config
48
+ pm2.start(configPath, { only: [appName] }, (err, proc) => {
49
+ if (err)
50
+ reject(err);
51
+ else
52
+ resolve(proc);
53
+ });
54
+ }
55
+ else {
56
+ // Start all apps from config
57
+ pm2.start(configPath, (err, proc) => {
58
+ if (err)
59
+ reject(err);
60
+ else
61
+ resolve(proc);
62
+ });
63
+ }
64
+ });
65
+ }
66
+ function pm2Stop(name) {
67
+ return new Promise((resolve, reject) => {
68
+ pm2.stop(name, (err, proc) => {
69
+ if (err)
70
+ reject(err);
71
+ else
72
+ resolve(proc);
73
+ });
74
+ });
75
+ }
76
+ function pm2Restart(name) {
77
+ return new Promise((resolve, reject) => {
78
+ pm2.restart(name, (err, proc) => {
79
+ if (err)
80
+ reject(err);
81
+ else
82
+ resolve(proc);
83
+ });
84
+ });
85
+ }
86
+ function pm2Delete(name) {
87
+ return new Promise((resolve, reject) => {
88
+ pm2.delete(name, (err, proc) => {
89
+ if (err)
90
+ reject(err);
91
+ else
92
+ resolve(proc);
93
+ });
94
+ });
95
+ }
96
+ function pm2Describe(name) {
97
+ return new Promise((resolve, reject) => {
98
+ pm2.describe(name, (err, desc) => {
99
+ if (err)
100
+ reject(err);
101
+ else
102
+ resolve(desc);
103
+ });
104
+ });
105
+ }
106
+ function pm2Flush(name) {
107
+ return new Promise((resolve, reject) => {
108
+ pm2.flush(name, (err) => {
109
+ if (err)
110
+ reject(err);
111
+ else
112
+ resolve();
113
+ });
114
+ });
115
+ }
116
+ function pm2Dump() {
117
+ return new Promise((resolve, reject) => {
118
+ pm2.dump((err) => {
119
+ if (err)
120
+ reject(err);
121
+ else
122
+ resolve();
123
+ });
124
+ });
125
+ }
126
+ /**
127
+ * PM2 Service Manager Adapter
128
+ * Implements IServiceManagerPort for managing services via PM2
129
+ */
130
+ export class Pm2ServiceManagerAdapter {
131
+ connected = false;
132
+ paths;
133
+ constructor(paths) {
134
+ this.paths = paths;
135
+ }
136
+ /**
137
+ * Ensure connected to PM2 daemon
138
+ */
139
+ async ensureConnected() {
140
+ if (!this.connected) {
141
+ await pm2Connect(false);
142
+ this.connected = true;
143
+ }
144
+ }
145
+ /**
146
+ * Disconnect from PM2 daemon
147
+ */
148
+ disconnect() {
149
+ if (this.connected) {
150
+ pm2.disconnect();
151
+ this.connected = false;
152
+ }
153
+ }
154
+ /**
155
+ * Wait for a service to become online
156
+ * @param name - Service name
157
+ * @param timeout - Timeout in milliseconds
158
+ */
159
+ async waitForOnline(name, timeout) {
160
+ const startTime = Date.now();
161
+ while (Date.now() - startTime < timeout) {
162
+ const procs = await pm2List();
163
+ const proc = procs.find((p) => p.name === name);
164
+ if (proc?.pm2_env?.status === 'online') {
165
+ return;
166
+ }
167
+ await new Promise((resolve) => setTimeout(resolve, 500));
168
+ }
169
+ throw new Error(`Timeout waiting for ${name} to be ready`);
170
+ }
171
+ /**
172
+ * Start a service by name
173
+ */
174
+ async start(name, options) {
175
+ try {
176
+ await this.ensureConnected();
177
+ // Check if already running
178
+ const processes = await pm2List();
179
+ const existing = processes.find((p) => p.name === name);
180
+ if (existing && existing.pm2_env?.status === 'online') {
181
+ // Already running, no action needed
182
+ return;
183
+ }
184
+ if (existing) {
185
+ // Process exists but stopped, restart it
186
+ await pm2Restart(name);
187
+ // Wait for ready if requested (same logic as new process start)
188
+ if (options?.wait) {
189
+ await this.waitForOnline(name, options.waitTimeout || 30000);
190
+ }
191
+ return;
192
+ }
193
+ // Start from ecosystem config
194
+ const configPath = getEcosystemConfigPath(this.paths);
195
+ if (!existsSync(configPath)) {
196
+ throw new Error(`Ecosystem config not found: ${configPath}. Run 'mcctl console init' first.`);
197
+ }
198
+ // Start the specific app from config (not all apps)
199
+ await pm2StartConfig(configPath, name);
200
+ // Wait for ready if requested
201
+ if (options?.wait) {
202
+ await this.waitForOnline(name, options.waitTimeout || 30000);
203
+ }
204
+ }
205
+ catch (error) {
206
+ throw new Error(`Failed to start ${name}: ${formatPm2Error(error)}`);
207
+ }
208
+ }
209
+ /**
210
+ * Stop a service by name
211
+ * @throws Error if service not found (as per IServiceManagerPort contract)
212
+ */
213
+ async stop(name, options) {
214
+ try {
215
+ await this.ensureConnected();
216
+ // Check if process exists - throw if not found (interface contract)
217
+ const exists = await this.exists(name);
218
+ if (!exists) {
219
+ throw new Error(`Service '${name}' not found`);
220
+ }
221
+ if (options?.force) {
222
+ // Force stop: delete the process
223
+ await pm2Delete(name);
224
+ }
225
+ else {
226
+ // Graceful stop
227
+ await pm2Stop(name);
228
+ }
229
+ }
230
+ catch (error) {
231
+ throw new Error(`Failed to stop ${name}: ${formatPm2Error(error)}`);
232
+ }
233
+ }
234
+ /**
235
+ * Restart a service by name
236
+ */
237
+ async restart(name, options) {
238
+ try {
239
+ await this.ensureConnected();
240
+ // Check if process exists
241
+ const exists = await this.exists(name);
242
+ if (!exists) {
243
+ // Not running, start instead
244
+ await this.start(name, options);
245
+ return;
246
+ }
247
+ await pm2Restart(name);
248
+ // Wait for ready if requested
249
+ if (options?.wait) {
250
+ await this.waitForOnline(name, options.waitTimeout || 30000);
251
+ }
252
+ }
253
+ catch (error) {
254
+ throw new Error(`Failed to restart ${name}: ${formatPm2Error(error)}`);
255
+ }
256
+ }
257
+ /**
258
+ * Get status of one or all services
259
+ */
260
+ async status(name) {
261
+ try {
262
+ await this.ensureConnected();
263
+ let processes;
264
+ if (name) {
265
+ try {
266
+ processes = await pm2Describe(name);
267
+ }
268
+ catch {
269
+ // Process not found
270
+ return [];
271
+ }
272
+ }
273
+ else {
274
+ processes = await pm2List();
275
+ // Filter to only our services
276
+ processes = processes.filter((p) => p.name === PM2_SERVICE_NAMES.API || p.name === PM2_SERVICE_NAMES.CONSOLE);
277
+ }
278
+ return processes.map((p) => ProcessInfo.create({
279
+ pmId: p.pm_id ?? 0,
280
+ name: p.name ?? 'unknown',
281
+ status: normalizePm2Status(p.pm2_env?.status ?? 'stopped'),
282
+ pid: p.pid,
283
+ cpu: p.monit?.cpu,
284
+ memory: p.monit?.memory,
285
+ uptime: p.pm2_env?.pm_uptime,
286
+ restarts: p.pm2_env?.restart_time,
287
+ interpreter: p.pm2_env?.exec_interpreter,
288
+ scriptPath: p.pm2_env?.pm_exec_path,
289
+ }));
290
+ }
291
+ catch (error) {
292
+ throw new Error(`Failed to get status: ${formatPm2Error(error)}`);
293
+ }
294
+ }
295
+ /**
296
+ * Get logs for a service
297
+ */
298
+ async logs(name, options) {
299
+ const logPaths = getPm2LogPaths(this.paths, name);
300
+ const lines = options?.lines ?? 100;
301
+ if (options?.err) {
302
+ return readLogFile(logPaths.error, lines);
303
+ }
304
+ // Return combined logs
305
+ const outLogs = readLogFile(logPaths.output, lines);
306
+ const errLogs = readLogFile(logPaths.error, lines);
307
+ if (outLogs && errLogs) {
308
+ return `=== stdout ===\n${outLogs}\n\n=== stderr ===\n${errLogs}`;
309
+ }
310
+ return outLogs || errLogs || 'No logs available';
311
+ }
312
+ /**
313
+ * Delete a service from PM2
314
+ */
315
+ async delete(name) {
316
+ try {
317
+ await this.ensureConnected();
318
+ const exists = await this.exists(name);
319
+ if (!exists) {
320
+ return;
321
+ }
322
+ await pm2Delete(name);
323
+ }
324
+ catch (error) {
325
+ throw new Error(`Failed to delete ${name}: ${formatPm2Error(error)}`);
326
+ }
327
+ }
328
+ /**
329
+ * Reload ecosystem configuration
330
+ */
331
+ async reload(configPath) {
332
+ try {
333
+ await this.ensureConnected();
334
+ if (!existsSync(configPath)) {
335
+ throw new Error(`Config file not found: ${configPath}`);
336
+ }
337
+ // Reload by restarting from config
338
+ await pm2StartConfig(configPath);
339
+ }
340
+ catch (error) {
341
+ throw new Error(`Failed to reload config: ${formatPm2Error(error)}`);
342
+ }
343
+ }
344
+ /**
345
+ * Check if a service exists in PM2
346
+ */
347
+ async exists(name) {
348
+ try {
349
+ await this.ensureConnected();
350
+ const processes = await pm2List();
351
+ return processes.some((p) => p.name === name);
352
+ }
353
+ catch {
354
+ return false;
355
+ }
356
+ }
357
+ /**
358
+ * Flush logs for a service
359
+ */
360
+ async flush(name) {
361
+ try {
362
+ await this.ensureConnected();
363
+ await pm2Flush(name);
364
+ }
365
+ catch (error) {
366
+ throw new Error(`Failed to flush logs for ${name}: ${formatPm2Error(error)}`);
367
+ }
368
+ }
369
+ /**
370
+ * Save current process list
371
+ */
372
+ async save() {
373
+ try {
374
+ await this.ensureConnected();
375
+ await pm2Dump();
376
+ }
377
+ catch (error) {
378
+ throw new Error(`Failed to save process list: ${formatPm2Error(error)}`);
379
+ }
380
+ }
381
+ /**
382
+ * Resurrect saved processes
383
+ * Note: This is typically done via 'pm2 resurrect' command
384
+ */
385
+ async resurrect() {
386
+ // PM2 doesn't have a direct API for resurrect
387
+ // It's typically done via CLI: pm2 resurrect
388
+ throw new Error('Resurrect is not supported via API. Use: pm2 resurrect');
389
+ }
390
+ }
391
+ //# sourceMappingURL=Pm2ServiceManagerAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pm2ServiceManagerAdapter.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/Pm2ServiceManagerAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { ClackPromptAdapter } from './ClackPromptAdapter.js';
2
+ export { Pm2ServiceManagerAdapter } from './Pm2ServiceManagerAdapter.js';
3
+ export { ShellAdapter, ServerRepository, WorldRepository, DocsAdapter, } from '@minecraft-docker/shared';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/adapters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ // CLI-specific adapters
2
+ export { ClackPromptAdapter } from './ClackPromptAdapter.js';
3
+ export { Pm2ServiceManagerAdapter } from './Pm2ServiceManagerAdapter.js';
4
+ // Re-export shared adapters for backward compatibility
5
+ export { ShellAdapter, ServerRepository, WorldRepository, DocsAdapter, } from '@minecraft-docker/shared';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,uDAAuD;AACvD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type IPromptPort, type IShellPort, type IServerRepository, type IWorldRepository, type IDocProvider, type ICreateServerUseCase, type IDeleteServerUseCase, type IServerStatusUseCase, type IWorldManagementUseCase, type IBackupUseCase, type IPlayerLookupUseCase } from '@minecraft-docker/shared';
2
+ export interface ContainerOptions {
3
+ rootDir?: string;
4
+ sudoPassword?: string;
5
+ }
6
+ /**
7
+ * Dependency Injection Container
8
+ * Manages creation and lifecycle of dependencies
9
+ */
10
+ export declare class Container {
11
+ private readonly paths;
12
+ private readonly sudoPassword?;
13
+ private _promptPort?;
14
+ private _shellPort?;
15
+ private _serverRepo?;
16
+ private _worldRepo?;
17
+ private _docProvider?;
18
+ constructor(options?: ContainerOptions | string);
19
+ get promptPort(): IPromptPort;
20
+ get shellPort(): IShellPort;
21
+ get serverRepository(): IServerRepository;
22
+ get worldRepository(): IWorldRepository;
23
+ get docProvider(): IDocProvider;
24
+ get createServerUseCase(): ICreateServerUseCase;
25
+ get deleteServerUseCase(): IDeleteServerUseCase;
26
+ get serverStatusUseCase(): IServerStatusUseCase;
27
+ get worldManagementUseCase(): IWorldManagementUseCase;
28
+ get backupUseCase(): IBackupUseCase;
29
+ get playerLookupUseCase(): IPlayerLookupUseCase;
30
+ /**
31
+ * Create a container with default configuration
32
+ */
33
+ static create(options?: ContainerOptions | string): Container;
34
+ /**
35
+ * Create a container with custom adapters (for testing)
36
+ */
37
+ static createWithAdapters(promptPort: IPromptPort, shellPort: IShellPort, serverRepo: IServerRepository, worldRepo: IWorldRepository): Container;
38
+ }
39
+ /**
40
+ * Get or create the global container
41
+ */
42
+ export declare function getContainer(options?: ContainerOptions | string): Container;
43
+ /**
44
+ * Reset the global container (for testing)
45
+ */
46
+ export declare function resetContainer(): void;
47
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAeL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAIlC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IAGvC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAe;gBAExB,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAkB/C,IAAI,UAAU,IAAI,WAAW,CAK5B;IAED,IAAI,SAAS,IAAI,UAAU,CAQ1B;IAED,IAAI,gBAAgB,IAAI,iBAAiB,CAKxC;IAED,IAAI,eAAe,IAAI,gBAAgB,CAKtC;IAED,IAAI,WAAW,IAAI,YAAY,CAK9B;IAMD,IAAI,mBAAmB,IAAI,oBAAoB,CAO9C;IAED,IAAI,mBAAmB,IAAI,oBAAoB,CAM9C;IAED,IAAI,mBAAmB,IAAI,oBAAoB,CAM9C;IAED,IAAI,sBAAsB,IAAI,uBAAuB,CAOpD;IAED,IAAI,aAAa,IAAI,cAAc,CAElC;IAED,IAAI,mBAAmB,IAAI,oBAAoB,CAE9C;IAMD;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS;IAI7D;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,gBAAgB,GAC1B,SAAS;CAQb;AAQD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAe3E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -0,0 +1,140 @@
1
+ import { Paths,
2
+ // Infrastructure adapters from shared
3
+ ShellAdapter, ServerRepository, WorldRepository, DocsAdapter,
4
+ // Use cases from shared
5
+ CreateServerUseCase, DeleteServerUseCase, ServerStatusUseCase, WorldManagementUseCase, BackupUseCase, PlayerLookupUseCase, } from '@minecraft-docker/shared';
6
+ // CLI-specific adapter
7
+ import { ClackPromptAdapter } from '../adapters/ClackPromptAdapter.js';
8
+ /**
9
+ * Dependency Injection Container
10
+ * Manages creation and lifecycle of dependencies
11
+ */
12
+ export class Container {
13
+ paths;
14
+ sudoPassword;
15
+ // Adapters (singleton)
16
+ _promptPort;
17
+ _shellPort;
18
+ _serverRepo;
19
+ _worldRepo;
20
+ _docProvider;
21
+ constructor(options) {
22
+ if (typeof options === 'string') {
23
+ // Backward compatibility: rootDir as string
24
+ this.paths = new Paths(options);
25
+ this.sudoPassword = undefined;
26
+ }
27
+ else if (options) {
28
+ this.paths = new Paths(options.rootDir);
29
+ this.sudoPassword = options.sudoPassword;
30
+ }
31
+ else {
32
+ this.paths = new Paths();
33
+ this.sudoPassword = undefined;
34
+ }
35
+ }
36
+ // ========================================
37
+ // Ports (Adapters)
38
+ // ========================================
39
+ get promptPort() {
40
+ if (!this._promptPort) {
41
+ this._promptPort = new ClackPromptAdapter();
42
+ }
43
+ return this._promptPort;
44
+ }
45
+ get shellPort() {
46
+ if (!this._shellPort) {
47
+ this._shellPort = new ShellAdapter({
48
+ paths: this.paths,
49
+ sudoPassword: this.sudoPassword,
50
+ });
51
+ }
52
+ return this._shellPort;
53
+ }
54
+ get serverRepository() {
55
+ if (!this._serverRepo) {
56
+ this._serverRepo = new ServerRepository(this.paths);
57
+ }
58
+ return this._serverRepo;
59
+ }
60
+ get worldRepository() {
61
+ if (!this._worldRepo) {
62
+ this._worldRepo = new WorldRepository(this.paths);
63
+ }
64
+ return this._worldRepo;
65
+ }
66
+ get docProvider() {
67
+ if (!this._docProvider) {
68
+ this._docProvider = new DocsAdapter(this.paths.root);
69
+ }
70
+ return this._docProvider;
71
+ }
72
+ // ========================================
73
+ // Use Cases
74
+ // ========================================
75
+ get createServerUseCase() {
76
+ return new CreateServerUseCase(this.promptPort, this.shellPort, this.serverRepository, this.worldRepository);
77
+ }
78
+ get deleteServerUseCase() {
79
+ return new DeleteServerUseCase(this.promptPort, this.shellPort, this.serverRepository);
80
+ }
81
+ get serverStatusUseCase() {
82
+ return new ServerStatusUseCase(this.promptPort, this.shellPort, this.serverRepository);
83
+ }
84
+ get worldManagementUseCase() {
85
+ return new WorldManagementUseCase(this.promptPort, this.shellPort, this.worldRepository, this.serverRepository);
86
+ }
87
+ get backupUseCase() {
88
+ return new BackupUseCase(this.promptPort, this.shellPort);
89
+ }
90
+ get playerLookupUseCase() {
91
+ return new PlayerLookupUseCase(this.promptPort, this.shellPort);
92
+ }
93
+ // ========================================
94
+ // Factory
95
+ // ========================================
96
+ /**
97
+ * Create a container with default configuration
98
+ */
99
+ static create(options) {
100
+ return new Container(options);
101
+ }
102
+ /**
103
+ * Create a container with custom adapters (for testing)
104
+ */
105
+ static createWithAdapters(promptPort, shellPort, serverRepo, worldRepo) {
106
+ const container = new Container();
107
+ container._promptPort = promptPort;
108
+ container._shellPort = shellPort;
109
+ container._serverRepo = serverRepo;
110
+ container._worldRepo = worldRepo;
111
+ return container;
112
+ }
113
+ }
114
+ /**
115
+ * Global container instance
116
+ */
117
+ let globalContainer = null;
118
+ let globalContainerOptions = undefined;
119
+ /**
120
+ * Get or create the global container
121
+ */
122
+ export function getContainer(options) {
123
+ // Convert string to options for comparison
124
+ const normalizedOptions = typeof options === 'string' ? { rootDir: options } : options;
125
+ // Check if we need to recreate the container (options changed)
126
+ const optionsChanged = globalContainerOptions?.rootDir !== normalizedOptions?.rootDir ||
127
+ globalContainerOptions?.sudoPassword !== normalizedOptions?.sudoPassword;
128
+ if (!globalContainer || optionsChanged) {
129
+ globalContainer = Container.create(normalizedOptions);
130
+ globalContainerOptions = normalizedOptions;
131
+ }
132
+ return globalContainer;
133
+ }
134
+ /**
135
+ * Reset the global container (for testing)
136
+ */
137
+ export function resetContainer() {
138
+ globalContainer = null;
139
+ }
140
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK;AACL,sCAAsC;AACtC,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW;AACX,wBAAwB;AACxB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,GAapB,MAAM,0BAA0B,CAAC;AAClC,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAOvE;;;GAGG;AACH,MAAM,OAAO,SAAS;IACH,KAAK,CAAQ;IACb,YAAY,CAAU;IAEvC,uBAAuB;IACf,WAAW,CAAe;IAC1B,UAAU,CAAc;IACxB,WAAW,CAAqB;IAChC,UAAU,CAAoB;IAC9B,YAAY,CAAgB;IAEpC,YAAY,OAAmC;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,4CAA4C;YAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,mBAAmB;IACnB,2CAA2C;IAE3C,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,2CAA2C;IAC3C,YAAY;IACZ,2CAA2C;IAE3C,IAAI,mBAAmB;QACrB,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,eAAe,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,sBAAsB,CAC/B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,2CAA2C;IAC3C,UAAU;IACV,2CAA2C;IAE3C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAmC;QAC/C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,UAAuB,EACvB,SAAqB,EACrB,UAA6B,EAC7B,SAA2B;QAE3B,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC;QACnC,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC;QACjC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC;QACnC,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,IAAI,eAAe,GAAqB,IAAI,CAAC;AAC7C,IAAI,sBAAsB,GAAiC,SAAS,CAAC;AAErE;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAmC;IAC9D,2CAA2C;IAC3C,MAAM,iBAAiB,GACrB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAE/D,+DAA+D;IAC/D,MAAM,cAAc,GAClB,sBAAsB,EAAE,OAAO,KAAK,iBAAiB,EAAE,OAAO;QAC9D,sBAAsB,EAAE,YAAY,KAAK,iBAAiB,EAAE,YAAY,CAAC;IAE3E,IAAI,CAAC,eAAe,IAAI,cAAc,EAAE,CAAC;QACvC,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACtD,sBAAsB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Container, getContainer, resetContainer, type ContainerOptions } from './container.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Container, getContainer, resetContainer } from './container.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAyB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { ClackPromptAdapter } from './adapters/ClackPromptAdapter.js';
2
+ export { Pm2ServiceManagerAdapter } from './adapters/Pm2ServiceManagerAdapter.js';
3
+ export { ShellAdapter, ServerRepository, WorldRepository, DocsAdapter, } from '@minecraft-docker/shared';
4
+ export { Container, getContainer, resetContainer } from './di/index.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ // CLI-specific adapters
2
+ export { ClackPromptAdapter } from './adapters/ClackPromptAdapter.js';
3
+ export { Pm2ServiceManagerAdapter } from './adapters/Pm2ServiceManagerAdapter.js';
4
+ // Re-export shared adapters for backward compatibility
5
+ export { ShellAdapter, ServerRepository, WorldRepository, DocsAdapter, } from '@minecraft-docker/shared';
6
+ // DI Container (CLI-specific)
7
+ export { Container, getContainer, resetContainer } from './di/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,uDAAuD;AACvD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}