@minecraft-docker/mcctl 1.6.1 → 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 (90) hide show
  1. package/dist/commands/console/api.d.ts +19 -0
  2. package/dist/commands/console/api.d.ts.map +1 -0
  3. package/dist/commands/console/api.js +399 -0
  4. package/dist/commands/console/api.js.map +1 -0
  5. package/dist/commands/console/index.d.ts +10 -0
  6. package/dist/commands/console/index.d.ts.map +1 -0
  7. package/dist/commands/console/index.js +12 -0
  8. package/dist/commands/console/index.js.map +1 -0
  9. package/dist/commands/console/init.d.ts +47 -0
  10. package/dist/commands/console/init.d.ts.map +1 -0
  11. package/dist/commands/console/init.js +491 -0
  12. package/dist/commands/console/init.js.map +1 -0
  13. package/dist/commands/console/remove.d.ts +25 -0
  14. package/dist/commands/console/remove.d.ts.map +1 -0
  15. package/dist/commands/console/remove.js +189 -0
  16. package/dist/commands/console/remove.js.map +1 -0
  17. package/dist/commands/console/service.d.ts +40 -0
  18. package/dist/commands/console/service.d.ts.map +1 -0
  19. package/dist/commands/console/service.js +321 -0
  20. package/dist/commands/console/service.js.map +1 -0
  21. package/dist/commands/console/user.d.ts +17 -0
  22. package/dist/commands/console/user.d.ts.map +1 -0
  23. package/dist/commands/console/user.js +431 -0
  24. package/dist/commands/console/user.js.map +1 -0
  25. package/dist/commands/create.d.ts.map +1 -1
  26. package/dist/commands/create.js +4 -1
  27. package/dist/commands/create.js.map +1 -1
  28. package/dist/commands/delete.d.ts.map +1 -1
  29. package/dist/commands/delete.js +4 -1
  30. package/dist/commands/delete.js.map +1 -1
  31. package/dist/commands/index.d.ts +3 -0
  32. package/dist/commands/index.d.ts.map +1 -1
  33. package/dist/commands/index.js +5 -0
  34. package/dist/commands/index.js.map +1 -1
  35. package/dist/commands/init.d.ts.map +1 -1
  36. package/dist/commands/init.js +58 -26
  37. package/dist/commands/init.js.map +1 -1
  38. package/dist/commands/mod.d.ts +19 -0
  39. package/dist/commands/mod.d.ts.map +1 -0
  40. package/dist/commands/mod.js +441 -0
  41. package/dist/commands/mod.js.map +1 -0
  42. package/dist/commands/msg.d.ts +12 -0
  43. package/dist/commands/msg.d.ts.map +1 -0
  44. package/dist/commands/msg.js +273 -0
  45. package/dist/commands/msg.js.map +1 -0
  46. package/dist/commands/player-online.js +4 -2
  47. package/dist/commands/player-online.js.map +1 -1
  48. package/dist/commands/world.d.ts +2 -0
  49. package/dist/commands/world.d.ts.map +1 -1
  50. package/dist/commands/world.js +104 -1
  51. package/dist/commands/world.js.map +1 -1
  52. package/dist/index.js +162 -5
  53. package/dist/index.js.map +1 -1
  54. package/dist/infrastructure/adapters/ClackPromptAdapter.d.ts +2 -1
  55. package/dist/infrastructure/adapters/ClackPromptAdapter.d.ts.map +1 -1
  56. package/dist/infrastructure/adapters/ClackPromptAdapter.js +11 -0
  57. package/dist/infrastructure/adapters/ClackPromptAdapter.js.map +1 -1
  58. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.d.ts +78 -0
  59. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.d.ts.map +1 -0
  60. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.js +391 -0
  61. package/dist/infrastructure/adapters/Pm2ServiceManagerAdapter.js.map +1 -0
  62. package/dist/infrastructure/adapters/index.d.ts +1 -0
  63. package/dist/infrastructure/adapters/index.d.ts.map +1 -1
  64. package/dist/infrastructure/adapters/index.js +2 -1
  65. package/dist/infrastructure/adapters/index.js.map +1 -1
  66. package/dist/infrastructure/index.d.ts +1 -0
  67. package/dist/infrastructure/index.d.ts.map +1 -1
  68. package/dist/infrastructure/index.js +2 -1
  69. package/dist/infrastructure/index.js.map +1 -1
  70. package/dist/lib/admin-config.d.ts +66 -0
  71. package/dist/lib/admin-config.d.ts.map +1 -0
  72. package/dist/lib/admin-config.js +130 -0
  73. package/dist/lib/admin-config.js.map +1 -0
  74. package/dist/lib/pm2-utils.d.ts +71 -0
  75. package/dist/lib/pm2-utils.d.ts.map +1 -0
  76. package/dist/lib/pm2-utils.js +155 -0
  77. package/dist/lib/pm2-utils.js.map +1 -0
  78. package/dist/lib/prompts/ip-select.d.ts +25 -0
  79. package/dist/lib/prompts/ip-select.d.ts.map +1 -0
  80. package/dist/lib/prompts/ip-select.js +255 -0
  81. package/dist/lib/prompts/ip-select.js.map +1 -0
  82. package/dist/lib/shell.d.ts +2 -0
  83. package/dist/lib/shell.d.ts.map +1 -1
  84. package/dist/lib/shell.js +7 -4
  85. package/dist/lib/shell.js.map +1 -1
  86. package/dist/lib/sudo-utils.d.ts +14 -0
  87. package/dist/lib/sudo-utils.d.ts.map +1 -0
  88. package/dist/lib/sudo-utils.js +53 -0
  89. package/dist/lib/sudo-utils.js.map +1 -0
  90. package/package.json +8 -2
@@ -0,0 +1,431 @@
1
+ import { Command } from 'commander';
2
+ import * as p from '@clack/prompts';
3
+ import { User, Username, Role, RoleEnum, YamlUserRepository, Paths, colors, } from '@minecraft-docker/shared';
4
+ import { resolve } from 'node:path';
5
+ /**
6
+ * Get the user repository instance
7
+ */
8
+ function getUserRepository() {
9
+ const paths = new Paths();
10
+ const usersFile = resolve(paths.platform, 'users.yaml');
11
+ return new YamlUserRepository(usersFile);
12
+ }
13
+ /**
14
+ * List all users
15
+ */
16
+ async function listUsers(options) {
17
+ const repo = getUserRepository();
18
+ const users = await repo.findAll();
19
+ if (options.json) {
20
+ console.log(JSON.stringify(users.map((u) => u.toJSON()), null, 2));
21
+ return;
22
+ }
23
+ if (users.length === 0) {
24
+ console.log(colors.yellow('No users found.'));
25
+ console.log(`Run ${colors.cyan('mcctl console init')} to create an admin user.`);
26
+ return;
27
+ }
28
+ console.log();
29
+ console.log(colors.bold('Users:'));
30
+ console.log();
31
+ // Table header
32
+ const header = `${colors.dim('Username'.padEnd(20))}${colors.dim('Role'.padEnd(12))}${colors.dim('Created')}`;
33
+ console.log(header);
34
+ console.log(colors.dim('-'.repeat(50)));
35
+ // Table rows
36
+ for (const user of users) {
37
+ const roleColor = user.role.isAdmin ? colors.red : colors.blue;
38
+ const row = `${user.username.value.padEnd(20)}${roleColor(user.role.value.padEnd(12))}${user.createdAt.toISOString().split('T')[0]}`;
39
+ console.log(row);
40
+ }
41
+ console.log();
42
+ console.log(`Total: ${colors.cyan(users.length.toString())} user(s)`);
43
+ }
44
+ /**
45
+ * Add a new user
46
+ */
47
+ async function addUser(usernameArg, options) {
48
+ const repo = getUserRepository();
49
+ let username;
50
+ let role;
51
+ let password;
52
+ if (usernameArg && options.role && options.password) {
53
+ // CLI mode
54
+ username = usernameArg;
55
+ role = options.role.toLowerCase();
56
+ password = options.password;
57
+ }
58
+ else {
59
+ // Interactive mode
60
+ p.intro(colors.cyan('Add New User'));
61
+ const result = await p.group({
62
+ username: () => p.text({
63
+ message: 'Username:',
64
+ placeholder: 'operator1',
65
+ validate: (value) => {
66
+ if (!value || value.trim().length === 0) {
67
+ return 'Username is required';
68
+ }
69
+ if (value.length < 3) {
70
+ return 'Username must be at least 3 characters';
71
+ }
72
+ if (!/^[a-zA-Z0-9_-]+$/.test(value)) {
73
+ return 'Username can only contain letters, numbers, underscores, and hyphens';
74
+ }
75
+ return undefined;
76
+ },
77
+ }),
78
+ role: () => p.select({
79
+ message: 'Role:',
80
+ options: [
81
+ { value: RoleEnum.ADMIN, label: 'Admin - Full access' },
82
+ { value: RoleEnum.VIEWER, label: 'Viewer - Read-only access' },
83
+ ],
84
+ }),
85
+ password: () => p.password({
86
+ message: 'Password:',
87
+ validate: (value) => {
88
+ if (!value || value.length < 8) {
89
+ return 'Password must be at least 8 characters';
90
+ }
91
+ return undefined;
92
+ },
93
+ }),
94
+ confirmPassword: () => p.password({
95
+ message: 'Confirm password:',
96
+ }),
97
+ }, {
98
+ onCancel: () => {
99
+ p.cancel('Operation cancelled.');
100
+ process.exit(0);
101
+ },
102
+ });
103
+ if (result.password !== result.confirmPassword) {
104
+ p.cancel('Passwords do not match.');
105
+ process.exit(1);
106
+ }
107
+ username = result.username;
108
+ role = result.role;
109
+ password = result.password;
110
+ }
111
+ // Check if user already exists
112
+ try {
113
+ const existingUser = await repo.findByUsername(Username.create(username));
114
+ if (existingUser) {
115
+ console.error(colors.red(`User '${username}' already exists.`));
116
+ process.exit(1);
117
+ }
118
+ }
119
+ catch {
120
+ // Username validation failed
121
+ console.error(colors.red(`Invalid username: ${username}`));
122
+ process.exit(1);
123
+ }
124
+ // Create user
125
+ const passwordHash = await repo.hashPassword(password);
126
+ const user = User.create({
127
+ username: Username.create(username),
128
+ passwordHash,
129
+ role: Role.create(role),
130
+ });
131
+ await repo.save(user);
132
+ if (usernameArg) {
133
+ console.log(JSON.stringify({ success: true, username: user.username.value }));
134
+ }
135
+ else {
136
+ p.outro(colors.green(`User '${username}' created successfully!`));
137
+ }
138
+ }
139
+ /**
140
+ * Remove a user
141
+ */
142
+ async function removeUser(usernameArg, options) {
143
+ const repo = getUserRepository();
144
+ let username;
145
+ if (usernameArg) {
146
+ username = usernameArg;
147
+ }
148
+ else {
149
+ // Interactive mode
150
+ const users = await repo.findAll();
151
+ if (users.length === 0) {
152
+ console.error(colors.red('No users found.'));
153
+ process.exit(1);
154
+ }
155
+ const result = await p.select({
156
+ message: 'Select user to remove:',
157
+ options: users.map((u) => ({
158
+ value: u.username.value,
159
+ label: `${u.username.value} (${u.role.value})`,
160
+ })),
161
+ });
162
+ if (p.isCancel(result)) {
163
+ p.cancel('Operation cancelled.');
164
+ process.exit(0);
165
+ }
166
+ username = result;
167
+ }
168
+ // Find user
169
+ const user = await repo.findByUsername(Username.create(username));
170
+ if (!user) {
171
+ console.error(colors.red(`User '${username}' not found.`));
172
+ process.exit(1);
173
+ }
174
+ // Check if this is the last admin
175
+ if (user.isAdmin) {
176
+ const allUsers = await repo.findAll();
177
+ const adminCount = allUsers.filter((u) => u.isAdmin).length;
178
+ if (adminCount <= 1) {
179
+ console.error(colors.red('Cannot delete the last admin user.'));
180
+ process.exit(1);
181
+ }
182
+ }
183
+ // Confirm deletion
184
+ if (!options.force) {
185
+ const confirmed = await p.confirm({
186
+ message: `Are you sure you want to delete user '${username}'?`,
187
+ });
188
+ if (p.isCancel(confirmed) || !confirmed) {
189
+ p.cancel('Operation cancelled.');
190
+ process.exit(0);
191
+ }
192
+ }
193
+ await repo.delete(user.id);
194
+ console.log(colors.green(`User '${username}' deleted successfully.`));
195
+ }
196
+ /**
197
+ * Update a user
198
+ */
199
+ async function updateUser(usernameArg, options) {
200
+ const repo = getUserRepository();
201
+ let username;
202
+ if (usernameArg) {
203
+ username = usernameArg;
204
+ }
205
+ else {
206
+ // Interactive mode
207
+ const users = await repo.findAll();
208
+ if (users.length === 0) {
209
+ console.error(colors.red('No users found.'));
210
+ process.exit(1);
211
+ }
212
+ const result = await p.select({
213
+ message: 'Select user to update:',
214
+ options: users.map((u) => ({
215
+ value: u.username.value,
216
+ label: `${u.username.value} (${u.role.value})`,
217
+ })),
218
+ });
219
+ if (p.isCancel(result)) {
220
+ p.cancel('Operation cancelled.');
221
+ process.exit(0);
222
+ }
223
+ username = result;
224
+ }
225
+ // Find user
226
+ const user = await repo.findByUsername(Username.create(username));
227
+ if (!user) {
228
+ console.error(colors.red(`User '${username}' not found.`));
229
+ process.exit(1);
230
+ }
231
+ // Update role
232
+ let newRole;
233
+ if (options.role) {
234
+ newRole = options.role.toLowerCase();
235
+ }
236
+ else {
237
+ const result = await p.select({
238
+ message: 'New role:',
239
+ initialValue: user.role.value,
240
+ options: [
241
+ { value: RoleEnum.ADMIN, label: 'Admin - Full access' },
242
+ { value: RoleEnum.VIEWER, label: 'Viewer - Read-only access' },
243
+ ],
244
+ });
245
+ if (p.isCancel(result)) {
246
+ p.cancel('Operation cancelled.');
247
+ process.exit(0);
248
+ }
249
+ newRole = result;
250
+ }
251
+ // Check if this would remove the last admin
252
+ if (user.isAdmin && newRole !== RoleEnum.ADMIN) {
253
+ const allUsers = await repo.findAll();
254
+ const adminCount = allUsers.filter((u) => u.isAdmin).length;
255
+ if (adminCount <= 1) {
256
+ console.error(colors.red('Cannot change role of the last admin user.'));
257
+ process.exit(1);
258
+ }
259
+ }
260
+ user.updateRole(Role.create(newRole));
261
+ await repo.save(user);
262
+ console.log(colors.green(`User '${username}' updated to role '${newRole}'.`));
263
+ }
264
+ /**
265
+ * Reset a user's password
266
+ */
267
+ async function resetPassword(usernameArg, options) {
268
+ const repo = getUserRepository();
269
+ let username;
270
+ if (usernameArg) {
271
+ username = usernameArg;
272
+ }
273
+ else {
274
+ // Interactive mode
275
+ const users = await repo.findAll();
276
+ if (users.length === 0) {
277
+ console.error(colors.red('No users found.'));
278
+ process.exit(1);
279
+ }
280
+ const result = await p.select({
281
+ message: 'Select user to reset password:',
282
+ options: users.map((u) => ({
283
+ value: u.username.value,
284
+ label: `${u.username.value} (${u.role.value})`,
285
+ })),
286
+ });
287
+ if (p.isCancel(result)) {
288
+ p.cancel('Operation cancelled.');
289
+ process.exit(0);
290
+ }
291
+ username = result;
292
+ }
293
+ // Find user
294
+ const user = await repo.findByUsername(Username.create(username));
295
+ if (!user) {
296
+ console.error(colors.red(`User '${username}' not found.`));
297
+ process.exit(1);
298
+ }
299
+ // Get new password
300
+ let newPassword;
301
+ if (options.password) {
302
+ newPassword = options.password;
303
+ }
304
+ else {
305
+ const result = await p.group({
306
+ password: () => p.password({
307
+ message: 'New password:',
308
+ validate: (value) => {
309
+ if (!value || value.length < 8) {
310
+ return 'Password must be at least 8 characters';
311
+ }
312
+ return undefined;
313
+ },
314
+ }),
315
+ confirmPassword: () => p.password({
316
+ message: 'Confirm password:',
317
+ }),
318
+ }, {
319
+ onCancel: () => {
320
+ p.cancel('Operation cancelled.');
321
+ process.exit(0);
322
+ },
323
+ });
324
+ if (result.password !== result.confirmPassword) {
325
+ p.cancel('Passwords do not match.');
326
+ process.exit(1);
327
+ }
328
+ newPassword = result.password;
329
+ }
330
+ // Update password
331
+ const passwordHash = await repo.hashPassword(newPassword);
332
+ user.updatePasswordHash(passwordHash);
333
+ await repo.save(user);
334
+ console.log(colors.green(`Password for '${username}' has been reset.`));
335
+ }
336
+ /**
337
+ * Create console user command
338
+ */
339
+ export function consoleUserCommand() {
340
+ const cmd = new Command('user')
341
+ .description('Manage console users')
342
+ .addHelpText('after', `
343
+ Examples:
344
+ $ mcctl console user list List all users
345
+ $ mcctl console user list --json List users in JSON format
346
+ $ mcctl console user add Add user (interactive)
347
+ $ mcctl console user add operator1 --role viewer --password "secret"
348
+ $ mcctl console user remove Remove user (interactive)
349
+ $ mcctl console user remove operator1 Remove user directly
350
+ $ mcctl console user remove operator1 --force Remove without confirmation
351
+ $ mcctl console user update Update user (interactive)
352
+ $ mcctl console user update operator1 --role admin
353
+ $ mcctl console user reset-password Reset password (interactive)
354
+ $ mcctl console user reset-password operator1
355
+ `);
356
+ // list subcommand
357
+ cmd
358
+ .command('list')
359
+ .description('List all users')
360
+ .option('--json', 'Output in JSON format')
361
+ .action(async (options) => {
362
+ try {
363
+ await listUsers(options);
364
+ }
365
+ catch (error) {
366
+ console.error(colors.red(`Error: ${error.message}`));
367
+ process.exit(1);
368
+ }
369
+ });
370
+ // add subcommand
371
+ cmd
372
+ .command('add [username]')
373
+ .description('Add a new user')
374
+ .option('--role <role>', 'User role (admin, viewer)')
375
+ .option('--password <password>', 'User password')
376
+ .action(async (username, options) => {
377
+ try {
378
+ await addUser(username, options);
379
+ }
380
+ catch (error) {
381
+ console.error(colors.red(`Error: ${error.message}`));
382
+ process.exit(1);
383
+ }
384
+ });
385
+ // remove subcommand
386
+ cmd
387
+ .command('remove [username]')
388
+ .description('Remove a user')
389
+ .option('--force', 'Skip confirmation')
390
+ .action(async (username, options) => {
391
+ try {
392
+ await removeUser(username, options);
393
+ }
394
+ catch (error) {
395
+ console.error(colors.red(`Error: ${error.message}`));
396
+ process.exit(1);
397
+ }
398
+ });
399
+ // update subcommand
400
+ cmd
401
+ .command('update [username]')
402
+ .description('Update a user')
403
+ .option('--role <role>', 'New role (admin, viewer)')
404
+ .action(async (username, options) => {
405
+ try {
406
+ await updateUser(username, options);
407
+ }
408
+ catch (error) {
409
+ console.error(colors.red(`Error: ${error.message}`));
410
+ process.exit(1);
411
+ }
412
+ });
413
+ // reset-password subcommand
414
+ cmd
415
+ .command('reset-password [username]')
416
+ .description('Reset a user password')
417
+ .option('--password <password>', 'New password (for non-interactive use)')
418
+ .action(async (username, options) => {
419
+ try {
420
+ await resetPassword(username, options);
421
+ }
422
+ catch (error) {
423
+ console.error(colors.red(`Error: ${error.message}`));
424
+ process.exit(1);
425
+ }
426
+ });
427
+ return cmd;
428
+ }
429
+ // Backward compatibility alias
430
+ export const adminUserCommand = consoleUserCommand;
431
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/commands/console/user.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlF"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBlF"}
@@ -1,5 +1,6 @@
1
1
  import { Paths, log, colors } from '@minecraft-docker/shared';
2
2
  import { getContainer } from '../infrastructure/index.js';
3
+ import { promptSudoPasswordIfNeeded } from '../lib/sudo-utils.js';
3
4
  /**
4
5
  * Execute create server command
5
6
  *
@@ -13,9 +14,11 @@ export async function createCommand(options) {
13
14
  log.error('Platform not initialized. Run: mcctl init');
14
15
  return 1;
15
16
  }
17
+ // Prompt for sudo password if needed (avahi installed but no password provided)
18
+ const sudoPassword = await promptSudoPasswordIfNeeded(options.sudoPassword);
16
19
  const container = getContainer({
17
20
  rootDir: options.root,
18
- sudoPassword: options.sudoPassword,
21
+ sudoPassword,
19
22
  });
20
23
  // Determine execution mode
21
24
  if (options.name) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAiB1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,uBAAuB;IACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,4CAA4C;QAC5C,OAAO,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,SAA0C,EAC1C,OAA6B;IAE7B,MAAM,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC;YAC7C,IAAI,EAAE,OAAO,CAAC,IAAK;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO;SAC5B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,SAA0C;IAE1C,MAAM,OAAO,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0BAA0B;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,CAAC,oCAAoC;QAChD,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlF"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBlF"}
@@ -1,5 +1,6 @@
1
1
  import { Paths, log, colors } from '@minecraft-docker/shared';
2
2
  import { getContainer } from '../infrastructure/index.js';
3
+ import { promptSudoPasswordIfNeeded } from '../lib/sudo-utils.js';
3
4
  /**
4
5
  * Execute delete server command
5
6
  *
@@ -13,9 +14,11 @@ export async function deleteCommand(options) {
13
14
  log.error('Platform not initialized. Run: mcctl init');
14
15
  return 1;
15
16
  }
17
+ // Prompt for sudo password if needed (avahi installed but no password provided)
18
+ const sudoPassword = await promptSudoPasswordIfNeeded(options.sudoPassword);
16
19
  const container = getContainer({
17
20
  rootDir: options.root,
18
- sudoPassword: options.sudoPassword,
21
+ sudoPassword,
19
22
  });
20
23
  // Determine execution mode
21
24
  if (options.name) {
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,7 @@ export { kickCommand, type KickCommandOptions } from './kick.js';
15
15
  export { playerOnlineCommand, type PlayerOnlineCommandOptions } from './player-online.js';
16
16
  export { playerCommand, type PlayerCommandOptions } from './player.js';
17
17
  export { migrateCommand, type MigrateCommandOptions } from './migrate.js';
18
+ export { modCommand, type ModCommandOptions } from './mod.js';
19
+ export { consoleInitCommand, consoleServiceCommand, consoleUserCommand, consoleApiCommand, consoleRemoveCommand, deleteAdminImages, type ConsoleInitOptions, type ConsoleServiceOptions, type ConsoleUserCommandOptions, type ConsoleApiCommandOptions, type ConsoleRemoveOptions, } from './console/index.js';
20
+ export { adminInitCommand, adminServiceCommand, adminUserCommand, adminApiCommand, type AdminInitOptions, type AdminServiceOptions, type AdminUserCommandOptions, type AdminApiCommandOptions, } from './console/index.js';
18
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC"}
@@ -15,4 +15,9 @@ export { kickCommand } from './kick.js';
15
15
  export { playerOnlineCommand } from './player-online.js';
16
16
  export { playerCommand } from './player.js';
17
17
  export { migrateCommand } from './migrate.js';
18
+ export { modCommand } from './mod.js';
19
+ // Console commands (new names)
20
+ export { consoleInitCommand, consoleServiceCommand, consoleUserCommand, consoleApiCommand, consoleRemoveCommand, deleteAdminImages, } from './console/index.js';
21
+ // Backward compatibility aliases (deprecated - use console* instead)
22
+ export { adminInitCommand, adminServiceCommand, adminUserCommand, adminApiCommand, } from './console/index.js';
18
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,YAAY,EAA4B,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,SAAS,EAAyB,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAA6B,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAgC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAA0B,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAmC,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,cAAc,EAA8B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,YAAY,EAA4B,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,SAAS,EAAyB,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAA6B,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAgC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAA0B,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAmC,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,cAAc,EAA8B,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,UAAU,EAA0B,MAAM,UAAU,CAAC;AAE9D,+BAA+B;AAC/B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAMlB,MAAM,oBAAoB,CAAC;AAE5B,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAKhB,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4BA;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkLlB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqPlB"}