@tonk/cli 0.3.2 → 0.4.0

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 (129) hide show
  1. package/README.md +15 -200
  2. package/bin/tonk.js +36 -1
  3. package/package.json +24 -86
  4. package/dist/commands/auth.d.ts +0 -3
  5. package/dist/commands/auth.d.ts.map +0 -1
  6. package/dist/commands/auth.js +0 -184
  7. package/dist/commands/auth.js.map +0 -1
  8. package/dist/commands/create.d.ts +0 -3
  9. package/dist/commands/create.d.ts.map +0 -1
  10. package/dist/commands/create.js +0 -55
  11. package/dist/commands/create.js.map +0 -1
  12. package/dist/commands/delete.d.ts +0 -3
  13. package/dist/commands/delete.d.ts.map +0 -1
  14. package/dist/commands/delete.js +0 -67
  15. package/dist/commands/delete.js.map +0 -1
  16. package/dist/commands/deploy.d.ts +0 -3
  17. package/dist/commands/deploy.d.ts.map +0 -1
  18. package/dist/commands/deploy.js +0 -336
  19. package/dist/commands/deploy.js.map +0 -1
  20. package/dist/commands/hello/index.d.ts +0 -3
  21. package/dist/commands/hello/index.d.ts.map +0 -1
  22. package/dist/commands/hello/index.js +0 -296
  23. package/dist/commands/hello/index.js.map +0 -1
  24. package/dist/commands/hello.d.ts +0 -3
  25. package/dist/commands/hello.d.ts.map +0 -1
  26. package/dist/commands/hello.js +0 -83
  27. package/dist/commands/hello.js.map +0 -1
  28. package/dist/commands/init.d.ts +0 -3
  29. package/dist/commands/init.d.ts.map +0 -1
  30. package/dist/commands/init.js +0 -137
  31. package/dist/commands/init.js.map +0 -1
  32. package/dist/commands/kill.d.ts +0 -3
  33. package/dist/commands/kill.d.ts.map +0 -1
  34. package/dist/commands/kill.js +0 -66
  35. package/dist/commands/kill.js.map +0 -1
  36. package/dist/commands/ls.d.ts +0 -3
  37. package/dist/commands/ls.d.ts.map +0 -1
  38. package/dist/commands/ls.js +0 -52
  39. package/dist/commands/ls.js.map +0 -1
  40. package/dist/commands/proxy.d.ts +0 -3
  41. package/dist/commands/proxy.d.ts.map +0 -1
  42. package/dist/commands/proxy.js +0 -86
  43. package/dist/commands/proxy.js.map +0 -1
  44. package/dist/commands/ps.d.ts +0 -3
  45. package/dist/commands/ps.d.ts.map +0 -1
  46. package/dist/commands/ps.js +0 -56
  47. package/dist/commands/ps.js.map +0 -1
  48. package/dist/commands/push.d.ts +0 -3
  49. package/dist/commands/push.d.ts.map +0 -1
  50. package/dist/commands/push.js +0 -238
  51. package/dist/commands/push.js.map +0 -1
  52. package/dist/commands/server.d.ts +0 -3
  53. package/dist/commands/server.d.ts.map +0 -1
  54. package/dist/commands/server.js +0 -619
  55. package/dist/commands/server.js.map +0 -1
  56. package/dist/commands/start.d.ts +0 -3
  57. package/dist/commands/start.d.ts.map +0 -1
  58. package/dist/commands/start.js +0 -82
  59. package/dist/commands/start.js.map +0 -1
  60. package/dist/commands/worker/commands.d.ts +0 -42
  61. package/dist/commands/worker/commands.d.ts.map +0 -1
  62. package/dist/commands/worker/commands.js +0 -968
  63. package/dist/commands/worker/commands.js.map +0 -1
  64. package/dist/commands/worker/index.d.ts +0 -7
  65. package/dist/commands/worker/index.d.ts.map +0 -1
  66. package/dist/commands/worker/index.js +0 -30
  67. package/dist/commands/worker/index.js.map +0 -1
  68. package/dist/commands/worker/utils/config.d.ts +0 -26
  69. package/dist/commands/worker/utils/config.d.ts.map +0 -1
  70. package/dist/commands/worker/utils/config.js +0 -197
  71. package/dist/commands/worker/utils/config.js.map +0 -1
  72. package/dist/commands/worker/utils/display.d.ts +0 -6
  73. package/dist/commands/worker/utils/display.d.ts.map +0 -1
  74. package/dist/commands/worker/utils/display.js +0 -32
  75. package/dist/commands/worker/utils/display.js.map +0 -1
  76. package/dist/commands/worker/utils/finder.d.ts +0 -12
  77. package/dist/commands/worker/utils/finder.d.ts.map +0 -1
  78. package/dist/commands/worker/utils/finder.js +0 -60
  79. package/dist/commands/worker/utils/finder.js.map +0 -1
  80. package/dist/config/environment.d.ts +0 -52
  81. package/dist/config/environment.d.ts.map +0 -1
  82. package/dist/config/environment.js +0 -83
  83. package/dist/config/environment.js.map +0 -1
  84. package/dist/index.d.ts +0 -1
  85. package/dist/index.d.ts.map +0 -1
  86. package/dist/index.js +0 -3
  87. package/dist/index.js.map +0 -1
  88. package/dist/lib/tonkAuth.d.ts +0 -21
  89. package/dist/lib/tonkAuth.d.ts.map +0 -1
  90. package/dist/lib/tonkAuth.js +0 -140
  91. package/dist/lib/tonkAuth.js.map +0 -1
  92. package/dist/lib/workerManager.d.ts +0 -60
  93. package/dist/lib/workerManager.d.ts.map +0 -1
  94. package/dist/lib/workerManager.js +0 -417
  95. package/dist/lib/workerManager.js.map +0 -1
  96. package/dist/scripts/aws/create-key.sh +0 -20
  97. package/dist/scripts/aws/ec2-dns.sh +0 -20
  98. package/dist/scripts/aws/provision.sh +0 -93
  99. package/dist/tonk.d.ts +0 -2
  100. package/dist/tonk.d.ts.map +0 -1
  101. package/dist/tonk.js +0 -106
  102. package/dist/tonk.js.map +0 -1
  103. package/dist/types/worker.d.ts +0 -161
  104. package/dist/types/worker.d.ts.map +0 -1
  105. package/dist/types/worker.js +0 -7
  106. package/dist/types/worker.js.map +0 -1
  107. package/dist/types/workerConfig.d.ts +0 -164
  108. package/dist/types/workerConfig.d.ts.map +0 -1
  109. package/dist/types/workerConfig.js +0 -80
  110. package/dist/types/workerConfig.js.map +0 -1
  111. package/dist/utils/analytics.d.ts +0 -26
  112. package/dist/utils/analytics.d.ts.map +0 -1
  113. package/dist/utils/analytics.js +0 -218
  114. package/dist/utils/analytics.js.map +0 -1
  115. package/dist/utils/messages.d.ts +0 -6
  116. package/dist/utils/messages.d.ts.map +0 -1
  117. package/dist/utils/messages.js +0 -18
  118. package/dist/utils/messages.js.map +0 -1
  119. package/dist/utils/serverUtils.d.ts +0 -5
  120. package/dist/utils/serverUtils.d.ts.map +0 -1
  121. package/dist/utils/serverUtils.js +0 -34
  122. package/dist/utils/serverUtils.js.map +0 -1
  123. package/dist/utils/version.d.ts +0 -2
  124. package/dist/utils/version.d.ts.map +0 -1
  125. package/dist/utils/version.js +0 -3
  126. package/dist/utils/version.js.map +0 -1
  127. package/scripts/aws/create-key.sh +0 -20
  128. package/scripts/aws/ec2-dns.sh +0 -20
  129. package/scripts/aws/provision.sh +0 -93
@@ -1,619 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import inquirer from 'inquirer';
4
- import ora from 'ora';
5
- import { trackCommand, trackCommandError, trackCommandSuccess, shutdownAnalytics, } from '../utils/analytics.js';
6
- // Lazy-load authHook to prevent initialization on import
7
- async function getAuthHook() {
8
- const { authHook } = await import('../lib/tonkAuth.js');
9
- return authHook;
10
- }
11
- // Lazy-load tonkAuth to get auth token
12
- async function getTonkAuth() {
13
- const { tonkAuth } = await import('../lib/tonkAuth.js');
14
- return tonkAuth;
15
- }
16
- import { getDeploymentServiceUrl, config } from '../config/environment.js';
17
- import { fetchUserServers } from '../utils/serverUtils.js';
18
- // Privileged subdomain names that cannot be used as server names
19
- const PRIVILEGED_SUBDOMAINS = [
20
- 'accounts',
21
- 'clerk',
22
- 'clkmail',
23
- 'dashboard',
24
- 'tinyfoot',
25
- ];
26
- /**
27
- * Checks if the deployment service is reachable
28
- */
29
- async function checkDeploymentService() {
30
- try {
31
- const response = await fetch(`${getDeploymentServiceUrl()}/health`);
32
- if (!response.ok) {
33
- throw new Error(`Service returned ${response.status}`);
34
- }
35
- }
36
- catch (error) {
37
- console.error(chalk.red('Error: Tonk deployment service is not available.'));
38
- console.log(chalk.yellow('Please reach out for support or try again later.'));
39
- await shutdownAnalytics();
40
- process.exitCode = 1;
41
- return;
42
- }
43
- }
44
- /**
45
- * Validates that a server name is not a privileged subdomain
46
- */
47
- function validateServerName(serverName) {
48
- if (!serverName || serverName.trim().length === 0) {
49
- return 'Server name is required';
50
- }
51
- if (PRIVILEGED_SUBDOMAINS.includes(serverName.toLowerCase())) {
52
- return `Server name "${serverName}" is reserved and cannot be used. Please choose a different name.`;
53
- }
54
- return true;
55
- }
56
- /**
57
- * Gets server name from user if not provided
58
- */
59
- async function getServerName(serverName) {
60
- if (serverName) {
61
- return serverName;
62
- }
63
- const { inputName } = await inquirer.prompt([
64
- {
65
- type: 'input',
66
- name: 'inputName',
67
- message: 'Enter your Tonk server name:',
68
- validate: validateServerName,
69
- },
70
- ]);
71
- return inputName.trim();
72
- }
73
- /**
74
- * Deletes a server
75
- */
76
- async function deleteServer(serverName) {
77
- // Get auth token
78
- const tonkAuth = await getTonkAuth();
79
- const authToken = await tonkAuth.getAuthToken();
80
- if (!authToken) {
81
- throw new Error('Failed to get authentication token');
82
- }
83
- const formData = new FormData();
84
- formData.append('serverData', JSON.stringify({
85
- serverName,
86
- }));
87
- const response = await fetch(`${getDeploymentServiceUrl()}/delete-server`, {
88
- method: 'POST',
89
- headers: {
90
- Authorization: `Bearer ${authToken}`,
91
- },
92
- body: formData,
93
- });
94
- const result = await response.json();
95
- if (!response.ok || !result.success) {
96
- throw new Error(result.error || 'Failed to delete server');
97
- }
98
- console.log(chalk.green('Server deleted successfully!'));
99
- console.log(chalk.green(result.message));
100
- }
101
- /**
102
- * Creates a new Tonk server
103
- */
104
- async function createServer(serverName, options) {
105
- const spinner = ora('Creating Tonk server...').start();
106
- try {
107
- // Get auth token
108
- const tonkAuth = await getTonkAuth();
109
- const authToken = await tonkAuth.getAuthToken();
110
- if (!authToken) {
111
- throw new Error('Failed to get authentication token');
112
- }
113
- // Prepare form data for server creation
114
- const formData = new FormData();
115
- formData.append('serverData', JSON.stringify({
116
- serverName,
117
- region: options.region || 'ord',
118
- memory: options.memory || '1gb',
119
- cpus: options.cpus || '1',
120
- remote: options.remote || false,
121
- deployType: 'server',
122
- }));
123
- // Send server creation request
124
- spinner.text = 'Creating server...';
125
- const response = await fetch(`${getDeploymentServiceUrl()}/create-server`, {
126
- method: 'POST',
127
- headers: {
128
- Authorization: `Bearer ${authToken}`,
129
- },
130
- body: formData,
131
- });
132
- const result = await response.json();
133
- if (!response.ok || !result.success) {
134
- const errorMessage = result.error || 'Server creation failed';
135
- // Check for name conflict errors
136
- if (errorMessage.toLowerCase().includes('already exists') ||
137
- errorMessage.toLowerCase().includes('name is taken') ||
138
- errorMessage.toLowerCase().includes('name already taken') ||
139
- errorMessage.toLowerCase().includes('already in use') ||
140
- errorMessage.toLowerCase().includes('conflict')) {
141
- throw new Error(`Server name "${serverName}" is already taken. Please choose a different server name and try again.`);
142
- }
143
- throw new Error(errorMessage);
144
- }
145
- spinner.succeed('Server created successfully!');
146
- console.log(chalk.green(`🚀 Your Tonk server is ready!`));
147
- console.log(chalk.blue(` URL: ${result.serverUrl}`));
148
- console.log(chalk.yellow(` Use this server name for future bundle deployments: ${serverName}`));
149
- }
150
- catch (error) {
151
- spinner.fail('Server creation failed');
152
- throw error;
153
- }
154
- }
155
- /**
156
- * Lists bundles on a remote server
157
- */
158
- async function listRemoteBundles(serverName) {
159
- // Get auth token
160
- const tonkAuth = await getTonkAuth();
161
- const authToken = await tonkAuth.getAuthToken();
162
- if (!authToken) {
163
- throw new Error('Failed to get authentication token');
164
- }
165
- const formData = new FormData();
166
- formData.append('requestData', JSON.stringify({
167
- serverName,
168
- action: 'ls',
169
- }));
170
- const response = await fetch(`${getDeploymentServiceUrl()}/server-action`, {
171
- method: 'POST',
172
- headers: {
173
- Authorization: `Bearer ${authToken}`,
174
- },
175
- body: formData,
176
- });
177
- const result = await response.json();
178
- if (!response.ok || !result.success) {
179
- throw new Error(result.error || 'Failed to list bundles');
180
- }
181
- if (result.bundles && result.bundles.length > 0) {
182
- console.log(chalk.green(`📦 Bundles on server "${serverName}":`));
183
- result.bundles.forEach((bundle) => {
184
- console.log(chalk.blue(` • ${bundle}`));
185
- });
186
- }
187
- else {
188
- console.log(chalk.yellow(`No bundles found on server "${serverName}"`));
189
- }
190
- }
191
- /**
192
- * Lists running bundles on a remote server
193
- */
194
- async function listRunningBundles(serverName) {
195
- // Get auth token
196
- const tonkAuth = await getTonkAuth();
197
- const authToken = await tonkAuth.getAuthToken();
198
- if (!authToken) {
199
- throw new Error('Failed to get authentication token');
200
- }
201
- const formData = new FormData();
202
- formData.append('requestData', JSON.stringify({
203
- serverName,
204
- action: 'ps',
205
- }));
206
- const response = await fetch(`${getDeploymentServiceUrl()}/server-action`, {
207
- method: 'POST',
208
- headers: {
209
- Authorization: `Bearer ${authToken}`,
210
- },
211
- body: formData,
212
- });
213
- const result = await response.json();
214
- if (!response.ok || !result.success) {
215
- throw new Error(result.error || 'Failed to list running bundles');
216
- }
217
- if (result.processes && result.processes.length > 0) {
218
- console.log(chalk.green(`🏃 Running bundles on server "${serverName}":`));
219
- result.processes.forEach((process) => {
220
- console.log(chalk.blue(` • ${process.bundleName} (${process.id})`));
221
- console.log(chalk.gray(` Route: ${process.route}`));
222
- console.log(chalk.gray(` Status: ${process.status}`));
223
- if (process.url) {
224
- console.log(chalk.gray(` URL: ${process.url}`));
225
- }
226
- console.log('');
227
- });
228
- }
229
- else {
230
- console.log(chalk.yellow(`No running bundles on server "${serverName}"`));
231
- }
232
- }
233
- /**
234
- * Deletes a bundle from a remote server
235
- */
236
- async function deleteRemoteBundle(bundleName, serverName) {
237
- // Get auth token
238
- const tonkAuth = await getTonkAuth();
239
- const authToken = await tonkAuth.getAuthToken();
240
- if (!authToken) {
241
- throw new Error('Failed to get authentication token');
242
- }
243
- const formData = new FormData();
244
- formData.append('deleteData', JSON.stringify({
245
- bundleName,
246
- serverName,
247
- deployType: 'delete',
248
- }));
249
- const response = await fetch(`${getDeploymentServiceUrl()}/delete-bundle`, {
250
- method: 'POST',
251
- headers: {
252
- Authorization: `Bearer ${authToken}`,
253
- },
254
- body: formData,
255
- });
256
- const result = await response.json();
257
- if (!response.ok || !result.success) {
258
- throw new Error(result.error || 'Failed to delete bundle');
259
- }
260
- console.log(chalk.green('Bundle deleted successfully!'));
261
- console.log(chalk.green(result.message));
262
- }
263
- /**
264
- * Server create command handler
265
- */
266
- async function handleServerCreateCommand(options) {
267
- const startTime = Date.now();
268
- let tonkAuth = null;
269
- try {
270
- // Run auth check (replaces the preAction hook)
271
- const authHook = await getAuthHook();
272
- await authHook();
273
- // Get TonkAuth instance for cleanup
274
- tonkAuth = await getTonkAuth();
275
- trackCommand('server-create', {
276
- name: options.name,
277
- region: options.region,
278
- memory: options.memory,
279
- cpus: options.cpus,
280
- remote: options.remote,
281
- });
282
- console.log(chalk.cyan('🔧 Tonk Server Create\n'));
283
- // Check prerequisites
284
- console.log(chalk.blue('Checking prerequisites...'));
285
- await checkDeploymentService();
286
- // Determine server name
287
- let serverName = options.name;
288
- if (!serverName) {
289
- const { inputName } = await inquirer.prompt([
290
- {
291
- type: 'input',
292
- name: 'inputName',
293
- message: 'Enter server name:',
294
- validate: validateServerName,
295
- },
296
- ]);
297
- serverName = inputName
298
- .trim()
299
- .replace(/[^a-zA-Z0-9-]/g, '-')
300
- .toLowerCase();
301
- }
302
- else {
303
- // Validate provided server name
304
- const validation = validateServerName(serverName);
305
- if (validation !== true) {
306
- throw new Error(validation);
307
- }
308
- }
309
- console.log(chalk.green(`✓ Server name: ${serverName}`));
310
- // Confirm server creation
311
- const { confirm } = await inquirer.prompt([
312
- {
313
- type: 'confirm',
314
- name: 'confirm',
315
- message: `Create Tonk server "${serverName}"?`,
316
- default: true,
317
- },
318
- ]);
319
- if (!confirm) {
320
- console.log(chalk.yellow('Server creation cancelled'));
321
- await shutdownAnalytics();
322
- return;
323
- }
324
- // Create the server
325
- await createServer(serverName, options);
326
- const duration = Date.now() - startTime;
327
- trackCommandSuccess('server-create', duration, {
328
- serverName,
329
- region: options.region,
330
- memory: options.memory,
331
- cpus: options.cpus,
332
- remote: options.remote,
333
- });
334
- await shutdownAnalytics();
335
- if (tonkAuth)
336
- tonkAuth.destroy();
337
- }
338
- catch (error) {
339
- const duration = Date.now() - startTime;
340
- trackCommandError('server-create', error, duration, {
341
- name: options.name,
342
- region: options.region,
343
- });
344
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
345
- await shutdownAnalytics();
346
- if (tonkAuth)
347
- tonkAuth.destroy();
348
- process.exitCode = 1;
349
- }
350
- }
351
- // Server create command
352
- const serverCreateCommand = new Command('create')
353
- .description('Create a new Tonk server')
354
- .option('-n, --name <name>', 'Name for the server')
355
- .option('-r, --region <region>', 'Region to deploy to', config.deployment.defaultRegion)
356
- .option('-m, --memory <memory>', 'Memory allocation (e.g., 256mb, 1gb)', config.deployment.defaultMemory)
357
- .option('-c, --cpus <cpus>', 'Number of CPUs', config.deployment.defaultCpus)
358
- .option('--remote', 'Use remote Docker build (slower but works with limited local resources)')
359
- .action(handleServerCreateCommand);
360
- // Server ls command
361
- const serverLsCommand = new Command('ls')
362
- .description('List bundles on a remote Tonk server')
363
- .option('-s, --server <server>', 'Name of the Tonk server')
364
- .action(async (options) => {
365
- const startTime = Date.now();
366
- let tonkAuth = null;
367
- try {
368
- // Run auth check (replaces the preAction hook)
369
- const authHook = await getAuthHook();
370
- await authHook();
371
- // Get TonkAuth instance for cleanup
372
- tonkAuth = await getTonkAuth();
373
- trackCommand('server-ls', {
374
- server: options.server,
375
- });
376
- console.log(chalk.cyan('📋 Server Bundle List\n'));
377
- // Check prerequisites
378
- await checkDeploymentService();
379
- // Get server name
380
- const serverName = await getServerName(options.server);
381
- // List bundles
382
- await listRemoteBundles(serverName);
383
- const duration = Date.now() - startTime;
384
- trackCommandSuccess('server-ls', duration, {
385
- serverName,
386
- });
387
- await shutdownAnalytics();
388
- if (tonkAuth)
389
- tonkAuth.destroy();
390
- }
391
- catch (error) {
392
- const duration = Date.now() - startTime;
393
- trackCommandError('server-ls', error, duration, {
394
- server: options.server,
395
- });
396
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
397
- await shutdownAnalytics();
398
- if (tonkAuth)
399
- tonkAuth.destroy();
400
- process.exitCode = 1;
401
- }
402
- });
403
- // Server ps command
404
- const serverPsCommand = new Command('ps')
405
- .description('List running bundles on a remote Tonk server')
406
- .option('-s, --server <server>', 'Name of the Tonk server')
407
- .action(async (options) => {
408
- const startTime = Date.now();
409
- let tonkAuth = null;
410
- try {
411
- // Run auth check (replaces the preAction hook)
412
- const authHook = await getAuthHook();
413
- await authHook();
414
- // Get TonkAuth instance for cleanup
415
- tonkAuth = await getTonkAuth();
416
- trackCommand('server-ps', {
417
- server: options.server,
418
- });
419
- console.log(chalk.cyan('🏃 Server Running Bundles\n'));
420
- // Check prerequisites
421
- await checkDeploymentService();
422
- // Get server name
423
- const serverName = await getServerName(options.server);
424
- // List running bundles
425
- await listRunningBundles(serverName);
426
- const duration = Date.now() - startTime;
427
- trackCommandSuccess('server-ps', duration, {
428
- serverName,
429
- });
430
- await shutdownAnalytics();
431
- if (tonkAuth)
432
- tonkAuth.destroy();
433
- }
434
- catch (error) {
435
- const duration = Date.now() - startTime;
436
- trackCommandError('server-ps', error, duration, {
437
- server: options.server,
438
- });
439
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
440
- await shutdownAnalytics();
441
- if (tonkAuth)
442
- tonkAuth.destroy();
443
- process.exitCode = 1;
444
- }
445
- });
446
- // Server destroy command
447
- const serverDestroyCommand = new Command('destroy')
448
- .description('Permanently delete a Tonk server and all its data')
449
- .action(async () => {
450
- const startTime = Date.now();
451
- let tonkAuth = null;
452
- try {
453
- // Run auth check
454
- const authHook = await getAuthHook();
455
- await authHook();
456
- // Get TonkAuth instance for cleanup
457
- tonkAuth = await getTonkAuth();
458
- trackCommand('server-destroy', {});
459
- console.log(chalk.red('⚠️ Server Destruction\n'));
460
- console.log(chalk.yellow('WARNING: This will permanently delete your server and all data!'));
461
- console.log(chalk.yellow('This action cannot be undone.\n'));
462
- // Check prerequisites
463
- await checkDeploymentService();
464
- // Fetch user's servers
465
- console.log(chalk.blue('Fetching your servers...'));
466
- let userServers = [];
467
- try {
468
- userServers = await fetchUserServers();
469
- }
470
- catch (error) {
471
- console.error(chalk.red(`Error fetching servers: ${error instanceof Error ? error.message : String(error)}`));
472
- await shutdownAnalytics();
473
- process.exitCode = 1;
474
- return;
475
- }
476
- if (userServers.length === 0) {
477
- console.log(chalk.yellow('No servers found in your account.'));
478
- await shutdownAnalytics();
479
- return;
480
- }
481
- // Server selection
482
- let serverName;
483
- if (userServers.length === 1) {
484
- const { confirmSingle } = await inquirer.prompt([
485
- {
486
- type: 'confirm',
487
- name: 'confirmSingle',
488
- message: `Delete your only server '${userServers[0]}'?`,
489
- default: false,
490
- },
491
- ]);
492
- if (!confirmSingle) {
493
- console.log(chalk.yellow('Server deletion cancelled'));
494
- await shutdownAnalytics();
495
- return;
496
- }
497
- serverName = userServers[0];
498
- }
499
- else {
500
- const { selectedServer } = await inquirer.prompt([
501
- {
502
- type: 'list',
503
- name: 'selectedServer',
504
- message: `Select a server to PERMANENTLY DELETE (${userServers.length} available):`,
505
- choices: userServers,
506
- },
507
- ]);
508
- serverName = selectedServer;
509
- }
510
- // Final confirmation - require typing server name
511
- const { confirmName } = await inquirer.prompt([
512
- {
513
- type: 'input',
514
- name: 'confirmName',
515
- message: `Type the server name '${serverName}' to confirm deletion:`,
516
- validate: (input) => {
517
- if (input.trim() !== serverName) {
518
- return `Please type exactly '${serverName}' to confirm`;
519
- }
520
- return true;
521
- },
522
- },
523
- ]);
524
- if (confirmName.trim() !== serverName) {
525
- console.log(chalk.yellow('Server deletion cancelled'));
526
- await shutdownAnalytics();
527
- return;
528
- }
529
- // Delete the server
530
- console.log(chalk.red(`\nDeleting server '${serverName}'...`));
531
- await deleteServer(serverName);
532
- const duration = Date.now() - startTime;
533
- trackCommandSuccess('server-destroy', duration, {
534
- serverName,
535
- });
536
- await shutdownAnalytics();
537
- if (tonkAuth)
538
- tonkAuth.destroy();
539
- }
540
- catch (error) {
541
- const duration = Date.now() - startTime;
542
- trackCommandError('server-destroy', error, duration, {});
543
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
544
- await shutdownAnalytics();
545
- if (tonkAuth)
546
- tonkAuth.destroy();
547
- process.exitCode = 1;
548
- }
549
- });
550
- // Server rm command
551
- const serverRmCommand = new Command('rm')
552
- .alias('delete')
553
- .description('Delete a bundle from a remote Tonk server')
554
- .option('-s, --server <server>', 'Name of the Tonk server')
555
- .argument('<bundleName>', 'Name of the bundle to delete')
556
- .action(async (bundleName, options) => {
557
- const startTime = Date.now();
558
- let tonkAuth = null;
559
- try {
560
- // Run auth check (replaces the preAction hook)
561
- const authHook = await getAuthHook();
562
- await authHook();
563
- // Get TonkAuth instance for cleanup
564
- tonkAuth = await getTonkAuth();
565
- trackCommand('server-rm', {
566
- bundleName,
567
- server: options.server,
568
- });
569
- console.log(chalk.cyan('🗑️ Server Bundle Delete\n'));
570
- // Check prerequisites
571
- await checkDeploymentService();
572
- // Get server name
573
- const serverName = await getServerName(options.server);
574
- // Confirm deletion
575
- const { confirm } = await inquirer.prompt([
576
- {
577
- type: 'confirm',
578
- name: 'confirm',
579
- message: `Delete bundle "${bundleName}" from server "${serverName}"?`,
580
- default: false,
581
- },
582
- ]);
583
- if (!confirm) {
584
- console.log(chalk.yellow('Bundle deletion cancelled'));
585
- await shutdownAnalytics();
586
- return;
587
- }
588
- // Delete bundle
589
- await deleteRemoteBundle(bundleName, serverName);
590
- const duration = Date.now() - startTime;
591
- trackCommandSuccess('server-rm', duration, {
592
- bundleName,
593
- serverName,
594
- });
595
- await shutdownAnalytics();
596
- if (tonkAuth)
597
- tonkAuth.destroy();
598
- }
599
- catch (error) {
600
- const duration = Date.now() - startTime;
601
- trackCommandError('server-rm', error, duration, {
602
- bundleName,
603
- server: options.server,
604
- });
605
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
606
- await shutdownAnalytics();
607
- if (tonkAuth)
608
- tonkAuth.destroy();
609
- process.exitCode = 1;
610
- }
611
- });
612
- // Main server command
613
- export const serverCommand = new Command('server').description('Manage Tonk servers');
614
- serverCommand.addCommand(serverCreateCommand);
615
- serverCommand.addCommand(serverLsCommand);
616
- serverCommand.addCommand(serverPsCommand);
617
- serverCommand.addCommand(serverRmCommand);
618
- serverCommand.addCommand(serverDestroyCommand);
619
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,yDAAyD;AACzD,KAAK,UAAU,WAAW;IACxB,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,uCAAuC;AACvC,KAAK,UAAU,WAAW;IACxB,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,OAAO,EAAC,uBAAuB,EAAE,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAEzD,iEAAiE;AACjE,MAAM,qBAAqB,GAAG;IAC5B,UAAU;IACV,OAAO;IACP,SAAS;IACT,WAAW;IACX,UAAU;CACX,CAAC;AAUF;;GAEG;AACH,KAAK,UAAU,sBAAsB;IACnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,uBAAuB,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAC9D,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CACjE,CAAC;QACF,MAAM,iBAAiB,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,IAAI,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC7D,OAAO,gBAAgB,UAAU,mEAAmE,CAAC;IACvG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,UAAmB;IAC9C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,8BAA8B;YACvC,QAAQ,EAAE,kBAAkB;SAC7B;KACF,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,UAAkB;IAC5C,iBAAiB;IACjB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CACb,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC;QACb,UAAU;KACX,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,uBAAuB,EAAE,gBAAgB,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,SAAS,EAAE;SACrC;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,UAAkB,EAClB,OAAsB;IAEtB,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CACb,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC;YACb,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,UAAU,EAAE,QAAQ;SACrB,CAAC,CACH,CAAC;QAEF,+BAA+B;QAC/B,OAAO,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,uBAAuB,EAAE,gBAAgB,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,SAAS,EAAE;aACrC;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,MAAM,MAAM,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAAC;YAE9D,iCAAiC;YACjC,IACE,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACrD,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;gBACpD,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACzD,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACrD,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC/C,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,gBAAgB,UAAU,0EAA0E,CACrG,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,0DAA0D,UAAU,EAAE,CACvE,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,iBAAiB;IACjB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CACb,aAAa,EACb,IAAI,CAAC,SAAS,CAAC;QACb,UAAU;QACV,MAAM,EAAE,IAAI;KACb,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,uBAAuB,EAAE,gBAAgB,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,SAAS,EAAE;SACrC;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,UAAU,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAc,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+BAA+B,UAAU,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,iBAAiB;IACjB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CACb,aAAa,EACb,IAAI,CAAC,SAAS,CAAC;QACb,UAAU;QACV,MAAM,EAAE,IAAI;KACb,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,uBAAuB,EAAE,gBAAgB,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,SAAS,EAAE;SACrC;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,gCAAgC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,UAAU,IAAI,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,UAAkB,EAClB,UAAkB;IAElB,iBAAiB;IACjB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CACb,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC;QACb,UAAU;QACV,UAAU;QACV,UAAU,EAAE,QAAQ;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,uBAAuB,EAAE,gBAAgB,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,SAAS,EAAE;SACrC;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,yBAAyB,CACtC,OAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAQ,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,EAAE,CAAC;QAEjB,oCAAoC;QACpC,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,eAAe,EAAE;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAEnD,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,MAAM,sBAAsB,EAAE,CAAC;QAE/B,wBAAwB;QACxB,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACxC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,oBAAoB;oBAC7B,QAAQ,EAAE,kBAAkB;iBAC7B;aACF,CAAC,CAAC;YACH,UAAU,GAAG,SAAS;iBACnB,IAAI,EAAE;iBACN,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;iBAC9B,WAAW,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,UAAoB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC,CAAC;QAEzD,0BAA0B;QAC1B,MAAM,EAAC,OAAO,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACtC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,uBAAuB,UAAU,IAAI;gBAC9C,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,MAAM,iBAAiB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,YAAY,CAAC,UAAW,EAAE,OAAO,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,EAAE;YAC7C,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,iBAAiB,CAAC,eAAe,EAAE,KAAc,EAAE,QAAQ,EAAE;YAC3D,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CACF,CAAC;QACF,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,wBAAwB;AACxB,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC9C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;KAClD,MAAM,CACL,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,CAAC,UAAU,CAAC,aAAa,CAChC;KACA,MAAM,CACL,uBAAuB,EACvB,sCAAsC,EACtC,MAAM,CAAC,UAAU,CAAC,aAAa,CAChC;KACA,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;KAC5E,MAAM,CACL,UAAU,EACV,yEAAyE,CAC1E;KACA,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAErC,oBAAoB;AACpB,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;KACtC,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAQ,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,EAAE,CAAC;QAEjB,oCAAoC;QACpC,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,WAAW,EAAE;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAEnD,sBAAsB;QACtB,MAAM,sBAAsB,EAAE,CAAC;QAE/B,kBAAkB;QAClB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvD,eAAe;QACf,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE;YACzC,UAAU;SACX,CAAC,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,iBAAiB,CAAC,WAAW,EAAE,KAAc,EAAE,QAAQ,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CACF,CAAC;QACF,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;KACtC,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAQ,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,EAAE,CAAC;QAEjB,oCAAoC;QACpC,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,WAAW,EAAE;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAEvD,sBAAsB;QACtB,MAAM,sBAAsB,EAAE,CAAC;QAE/B,kBAAkB;QAClB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvD,uBAAuB;QACvB,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE;YACzC,UAAU;SACX,CAAC,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,iBAAiB,CAAC,WAAW,EAAE,KAAc,EAAE,QAAQ,EAAE;YACvD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CACF,CAAC;QACF,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,yBAAyB;AACzB,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAChD,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAQ,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,EAAE,CAAC;QAEjB,oCAAoC;QACpC,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAEnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iEAAiE,CAClE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAE7D,sBAAsB;QACtB,MAAM,sBAAsB,EAAE,CAAC;QAE/B,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CACF,CAAC;YACF,MAAM,iBAAiB,EAAE,CAAC;YAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC/D,MAAM,iBAAiB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,IAAI,UAAkB,CAAC;QACvB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC5C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,4BAA4B,WAAW,CAAC,CAAC,CAAC,IAAI;oBACvD,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACvD,MAAM,iBAAiB,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,EAAC,cAAc,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC7C;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,0CAA0C,WAAW,CAAC,MAAM,cAAc;oBACnF,OAAO,EAAE,WAAW;iBACrB;aACF,CAAC,CAAC;YACH,UAAU,GAAG,cAAc,CAAC;QAC9B,CAAC;QAED,kDAAkD;QAClD,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,yBAAyB,UAAU,wBAAwB;gBACpE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;wBAChC,OAAO,wBAAwB,UAAU,cAAc,CAAC;oBAC1D,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,MAAM,iBAAiB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,UAAU,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,EAAE;YAC9C,UAAU;SACX,CAAC,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,iBAAiB,CAAC,gBAAgB,EAAE,KAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAElE,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CACF,CAAC;QACF,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;KACtC,KAAK,CAAC,QAAQ,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;KAC1D,QAAQ,CAAC,cAAc,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAQ,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,EAAE,CAAC;QAEjB,oCAAoC;QACpC,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAE/B,YAAY,CAAC,WAAW,EAAE;YACxB,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAEvD,sBAAsB;QACtB,MAAM,sBAAsB,EAAE,CAAC;QAE/B,kBAAkB;QAClB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvD,mBAAmB;QACnB,MAAM,EAAC,OAAO,EAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACtC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,kBAAkB,UAAU,kBAAkB,UAAU,IAAI;gBACrE,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,MAAM,iBAAiB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,MAAM,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE;YACzC,UAAU;YACV,UAAU;SACX,CAAC,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,iBAAiB,CAAC,WAAW,EAAE,KAAc,EAAE,QAAQ,EAAE;YACvD,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CACF,CAAC;QACF,MAAM,iBAAiB,EAAE,CAAC;QAC1B,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC5D,qBAAqB,CACtB,CAAC;AAEF,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC9C,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1C,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1C,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1C,aAAa,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const startCommand: Command;
3
- //# sourceMappingURL=start.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAoBlC,eAAO,MAAM,YAAY,SAmGrB,CAAC"}