@tonk/cli 0.2.11 β 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +65 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/delete.d.ts +3 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +63 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/deploy.d.ts +0 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +2 -152
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/hello.d.ts.map +1 -1
- package/dist/commands/hello.js +6 -22
- package/dist/commands/hello.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +1 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/server.d.ts +3 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +427 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/lib/tonkAuth.d.ts +19 -0
- package/dist/lib/tonkAuth.d.ts.map +1 -0
- package/dist/lib/tonkAuth.js +99 -0
- package/dist/lib/tonkAuth.js.map +1 -0
- package/dist/tonk.js +6 -1
- package/dist/tonk.js.map +1 -1
- package/dist/utils/messages.d.ts +6 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +18 -0
- package/dist/utils/messages.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,427 @@
|
|
|
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, } from '../utils/analytics.js';
|
|
6
|
+
const DEPLOYMENT_SERVICE_URL = process.env.TONK_DEPLOYMENT_SERVICE_URL ||
|
|
7
|
+
'http://ec2-51-20-65-254.eu-north-1.compute.amazonaws.com:4444';
|
|
8
|
+
/**
|
|
9
|
+
* Checks if the deployment service is reachable
|
|
10
|
+
*/
|
|
11
|
+
async function checkDeploymentService() {
|
|
12
|
+
try {
|
|
13
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/health`);
|
|
14
|
+
if (!response.ok) {
|
|
15
|
+
throw new Error(`Service returned ${response.status}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error(chalk.red('Error: Tonk deployment service is not available.'));
|
|
20
|
+
console.log(chalk.yellow('Please reach out for support or try again later.'));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Gets server credentials from user
|
|
26
|
+
*/
|
|
27
|
+
async function getServerCredentials(serverName) {
|
|
28
|
+
const questions = [];
|
|
29
|
+
if (!serverName) {
|
|
30
|
+
questions.push({
|
|
31
|
+
type: 'input',
|
|
32
|
+
name: 'serverName',
|
|
33
|
+
message: 'Enter your Tonk server name:',
|
|
34
|
+
validate: (input) => {
|
|
35
|
+
if (!input || input.trim().length === 0) {
|
|
36
|
+
return 'Server name is required';
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
questions.push({
|
|
43
|
+
type: 'password',
|
|
44
|
+
name: 'accessCode',
|
|
45
|
+
message: 'Enter your access code:',
|
|
46
|
+
mask: '*',
|
|
47
|
+
validate: (input) => {
|
|
48
|
+
if (!input || input.trim().length === 0) {
|
|
49
|
+
return 'Access code is required';
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
},
|
|
53
|
+
}, {
|
|
54
|
+
type: 'password',
|
|
55
|
+
name: 'serverPin',
|
|
56
|
+
message: 'Enter the server PIN:',
|
|
57
|
+
mask: '*',
|
|
58
|
+
validate: (input) => {
|
|
59
|
+
if (!input || input.trim().length === 0) {
|
|
60
|
+
return 'Server PIN is required';
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const answers = await inquirer.prompt(questions);
|
|
66
|
+
return {
|
|
67
|
+
serverName: serverName || answers.serverName.trim(),
|
|
68
|
+
accessCode: answers.accessCode.trim(),
|
|
69
|
+
serverPin: answers.serverPin.trim(),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates a new Tonk server
|
|
74
|
+
*/
|
|
75
|
+
async function createServer(serverName, options) {
|
|
76
|
+
const spinner = ora('Creating Tonk server...').start();
|
|
77
|
+
try {
|
|
78
|
+
// Stop spinner before prompting for access code
|
|
79
|
+
spinner.stop();
|
|
80
|
+
// Prompt for access code and server PIN
|
|
81
|
+
const { accessCode, serverPin } = await inquirer.prompt([
|
|
82
|
+
{
|
|
83
|
+
type: 'password',
|
|
84
|
+
name: 'accessCode',
|
|
85
|
+
message: 'Enter your access code:',
|
|
86
|
+
mask: '*',
|
|
87
|
+
validate: (input) => {
|
|
88
|
+
if (!input || input.trim().length === 0) {
|
|
89
|
+
return 'Access code is required';
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'password',
|
|
96
|
+
name: 'serverPin',
|
|
97
|
+
message: 'Create a PIN for this server (minimum 4 characters):',
|
|
98
|
+
mask: '*',
|
|
99
|
+
validate: (input) => {
|
|
100
|
+
if (!input || input.trim().length < 4) {
|
|
101
|
+
return 'Server PIN must be at least 4 characters long';
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
]);
|
|
107
|
+
// Restart spinner for server creation
|
|
108
|
+
spinner.start();
|
|
109
|
+
// Prepare form data for server creation
|
|
110
|
+
const formData = new FormData();
|
|
111
|
+
formData.append('serverData', JSON.stringify({
|
|
112
|
+
serverName,
|
|
113
|
+
accessCode: accessCode.trim(),
|
|
114
|
+
serverPin: serverPin.trim(),
|
|
115
|
+
region: options.region || 'ord',
|
|
116
|
+
memory: options.memory || '1gb',
|
|
117
|
+
cpus: options.cpus || '1',
|
|
118
|
+
remote: options.remote || false,
|
|
119
|
+
deployType: 'server',
|
|
120
|
+
}));
|
|
121
|
+
// Send server creation request
|
|
122
|
+
spinner.text = 'Creating server...';
|
|
123
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/create-server`, {
|
|
124
|
+
method: 'POST',
|
|
125
|
+
body: formData,
|
|
126
|
+
});
|
|
127
|
+
const result = await response.json();
|
|
128
|
+
if (!response.ok || !result.success) {
|
|
129
|
+
throw new Error(result.error || 'Server creation failed');
|
|
130
|
+
}
|
|
131
|
+
spinner.succeed('Server created successfully!');
|
|
132
|
+
console.log(chalk.green(`π Your Tonk server is ready!`));
|
|
133
|
+
console.log(chalk.blue(` URL: ${result.serverUrl}`));
|
|
134
|
+
console.log(chalk.yellow(` Use this server name for future bundle deployments: ${serverName}`));
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
spinner.fail('Server creation failed');
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Lists bundles on a remote server
|
|
143
|
+
*/
|
|
144
|
+
async function listRemoteBundles(serverName, accessCode, serverPin) {
|
|
145
|
+
const formData = new FormData();
|
|
146
|
+
formData.append('requestData', JSON.stringify({
|
|
147
|
+
serverName,
|
|
148
|
+
accessCode,
|
|
149
|
+
serverPin,
|
|
150
|
+
action: 'ls',
|
|
151
|
+
}));
|
|
152
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/server-action`, {
|
|
153
|
+
method: 'POST',
|
|
154
|
+
body: formData,
|
|
155
|
+
});
|
|
156
|
+
const result = await response.json();
|
|
157
|
+
if (!response.ok || !result.success) {
|
|
158
|
+
throw new Error(result.error || 'Failed to list bundles');
|
|
159
|
+
}
|
|
160
|
+
if (result.bundles && result.bundles.length > 0) {
|
|
161
|
+
console.log(chalk.green(`π¦ Bundles on server "${serverName}":`));
|
|
162
|
+
result.bundles.forEach((bundle) => {
|
|
163
|
+
console.log(chalk.blue(` β’ ${bundle}`));
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.log(chalk.yellow(`No bundles found on server "${serverName}"`));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Lists running bundles on a remote server
|
|
172
|
+
*/
|
|
173
|
+
async function listRunningBundles(serverName, accessCode, serverPin) {
|
|
174
|
+
const formData = new FormData();
|
|
175
|
+
formData.append('requestData', JSON.stringify({
|
|
176
|
+
serverName,
|
|
177
|
+
accessCode,
|
|
178
|
+
serverPin,
|
|
179
|
+
action: 'ps',
|
|
180
|
+
}));
|
|
181
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/server-action`, {
|
|
182
|
+
method: 'POST',
|
|
183
|
+
body: formData,
|
|
184
|
+
});
|
|
185
|
+
const result = await response.json();
|
|
186
|
+
if (!response.ok || !result.success) {
|
|
187
|
+
throw new Error(result.error || 'Failed to list running bundles');
|
|
188
|
+
}
|
|
189
|
+
if (result.processes && result.processes.length > 0) {
|
|
190
|
+
console.log(chalk.green(`π Running bundles on server "${serverName}":`));
|
|
191
|
+
result.processes.forEach((process) => {
|
|
192
|
+
console.log(chalk.blue(` β’ ${process.bundleName} (${process.id})`));
|
|
193
|
+
console.log(chalk.gray(` Route: ${process.route}`));
|
|
194
|
+
console.log(chalk.gray(` Status: ${process.status}`));
|
|
195
|
+
if (process.url) {
|
|
196
|
+
console.log(chalk.gray(` URL: ${process.url}`));
|
|
197
|
+
}
|
|
198
|
+
console.log('');
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
console.log(chalk.yellow(`No running bundles on server "${serverName}"`));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Deletes a bundle from a remote server
|
|
207
|
+
*/
|
|
208
|
+
async function deleteRemoteBundle(bundleName, serverName, accessCode, serverPin) {
|
|
209
|
+
const formData = new FormData();
|
|
210
|
+
formData.append('deleteData', JSON.stringify({
|
|
211
|
+
bundleName,
|
|
212
|
+
serverName,
|
|
213
|
+
accessCode,
|
|
214
|
+
serverPin,
|
|
215
|
+
deployType: 'delete',
|
|
216
|
+
}));
|
|
217
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/delete-bundle`, {
|
|
218
|
+
method: 'POST',
|
|
219
|
+
body: formData,
|
|
220
|
+
});
|
|
221
|
+
const result = await response.json();
|
|
222
|
+
if (!response.ok || !result.success) {
|
|
223
|
+
throw new Error(result.error || 'Failed to delete bundle');
|
|
224
|
+
}
|
|
225
|
+
console.log(chalk.green('Bundle deleted successfully!'));
|
|
226
|
+
console.log(chalk.green(result.message));
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Server create command handler
|
|
230
|
+
*/
|
|
231
|
+
async function handleServerCreateCommand(options) {
|
|
232
|
+
const startTime = Date.now();
|
|
233
|
+
try {
|
|
234
|
+
trackCommand('server-create', {
|
|
235
|
+
name: options.name,
|
|
236
|
+
region: options.region,
|
|
237
|
+
memory: options.memory,
|
|
238
|
+
cpus: options.cpus,
|
|
239
|
+
remote: options.remote,
|
|
240
|
+
});
|
|
241
|
+
console.log(chalk.cyan('π§ Tonk Server Create\n'));
|
|
242
|
+
// Check prerequisites
|
|
243
|
+
console.log(chalk.blue('Checking prerequisites...'));
|
|
244
|
+
await checkDeploymentService();
|
|
245
|
+
// Determine server name
|
|
246
|
+
let serverName = options.name;
|
|
247
|
+
if (!serverName) {
|
|
248
|
+
const { inputName } = await inquirer.prompt([
|
|
249
|
+
{
|
|
250
|
+
type: 'input',
|
|
251
|
+
name: 'inputName',
|
|
252
|
+
message: 'Enter server name:',
|
|
253
|
+
validate: (input) => {
|
|
254
|
+
if (!input || input.trim().length === 0) {
|
|
255
|
+
return 'Server name is required';
|
|
256
|
+
}
|
|
257
|
+
return true;
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
]);
|
|
261
|
+
serverName = inputName
|
|
262
|
+
.trim()
|
|
263
|
+
.replace(/[^a-zA-Z0-9-]/g, '-')
|
|
264
|
+
.toLowerCase();
|
|
265
|
+
}
|
|
266
|
+
console.log(chalk.green(`β Server name: ${serverName}`));
|
|
267
|
+
// Confirm server creation
|
|
268
|
+
const { confirm } = await inquirer.prompt([
|
|
269
|
+
{
|
|
270
|
+
type: 'confirm',
|
|
271
|
+
name: 'confirm',
|
|
272
|
+
message: `Create Tonk server "${serverName}"?`,
|
|
273
|
+
default: true,
|
|
274
|
+
},
|
|
275
|
+
]);
|
|
276
|
+
if (!confirm) {
|
|
277
|
+
console.log(chalk.yellow('Server creation cancelled'));
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
// Create the server
|
|
281
|
+
await createServer(serverName, options);
|
|
282
|
+
const duration = Date.now() - startTime;
|
|
283
|
+
trackCommandSuccess('server-create', duration, {
|
|
284
|
+
serverName,
|
|
285
|
+
region: options.region,
|
|
286
|
+
memory: options.memory,
|
|
287
|
+
cpus: options.cpus,
|
|
288
|
+
remote: options.remote,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
const duration = Date.now() - startTime;
|
|
293
|
+
trackCommandError('server-create', error, duration, {
|
|
294
|
+
name: options.name,
|
|
295
|
+
region: options.region,
|
|
296
|
+
});
|
|
297
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
298
|
+
process.exit(1);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// Server create command
|
|
302
|
+
const serverCreateCommand = new Command('create')
|
|
303
|
+
.description('Create a new Tonk server')
|
|
304
|
+
.option('-n, --name <name>', 'Name for the server')
|
|
305
|
+
.option('-r, --region <region>', 'Region to deploy to', 'ord')
|
|
306
|
+
.option('-m, --memory <memory>', 'Memory allocation (e.g., 256mb, 1gb)', '1gb')
|
|
307
|
+
.option('-c, --cpus <cpus>', 'Number of CPUs', '1')
|
|
308
|
+
.option('--remote', 'Use remote Docker build (slower but works with limited local resources)')
|
|
309
|
+
.action(handleServerCreateCommand);
|
|
310
|
+
// Server ls command
|
|
311
|
+
const serverLsCommand = new Command('ls')
|
|
312
|
+
.description('List bundles on a remote Tonk server')
|
|
313
|
+
.option('-s, --server <server>', 'Name of the Tonk server')
|
|
314
|
+
.action(async (options) => {
|
|
315
|
+
const startTime = Date.now();
|
|
316
|
+
try {
|
|
317
|
+
trackCommand('server-ls', {
|
|
318
|
+
server: options.server,
|
|
319
|
+
});
|
|
320
|
+
console.log(chalk.cyan('π Server Bundle List\n'));
|
|
321
|
+
// Check prerequisites
|
|
322
|
+
await checkDeploymentService();
|
|
323
|
+
// Get credentials
|
|
324
|
+
const { serverName, accessCode, serverPin } = await getServerCredentials(options.server);
|
|
325
|
+
// List bundles
|
|
326
|
+
await listRemoteBundles(serverName, accessCode, serverPin);
|
|
327
|
+
const duration = Date.now() - startTime;
|
|
328
|
+
trackCommandSuccess('server-ls', duration, {
|
|
329
|
+
serverName,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
const duration = Date.now() - startTime;
|
|
334
|
+
trackCommandError('server-ls', error, duration, {
|
|
335
|
+
server: options.server,
|
|
336
|
+
});
|
|
337
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
338
|
+
process.exit(1);
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
// Server ps command
|
|
342
|
+
const serverPsCommand = new Command('ps')
|
|
343
|
+
.description('List running bundles on a remote Tonk server')
|
|
344
|
+
.option('-s, --server <server>', 'Name of the Tonk server')
|
|
345
|
+
.action(async (options) => {
|
|
346
|
+
const startTime = Date.now();
|
|
347
|
+
try {
|
|
348
|
+
trackCommand('server-ps', {
|
|
349
|
+
server: options.server,
|
|
350
|
+
});
|
|
351
|
+
console.log(chalk.cyan('π Server Running Bundles\n'));
|
|
352
|
+
// Check prerequisites
|
|
353
|
+
await checkDeploymentService();
|
|
354
|
+
// Get credentials
|
|
355
|
+
const { serverName, accessCode, serverPin } = await getServerCredentials(options.server);
|
|
356
|
+
// List running bundles
|
|
357
|
+
await listRunningBundles(serverName, accessCode, serverPin);
|
|
358
|
+
const duration = Date.now() - startTime;
|
|
359
|
+
trackCommandSuccess('server-ps', duration, {
|
|
360
|
+
serverName,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
catch (error) {
|
|
364
|
+
const duration = Date.now() - startTime;
|
|
365
|
+
trackCommandError('server-ps', error, duration, {
|
|
366
|
+
server: options.server,
|
|
367
|
+
});
|
|
368
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
369
|
+
process.exit(1);
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
// Server rm command
|
|
373
|
+
const serverRmCommand = new Command('rm')
|
|
374
|
+
.alias('delete')
|
|
375
|
+
.description('Delete a bundle from a remote Tonk server')
|
|
376
|
+
.option('-s, --server <server>', 'Name of the Tonk server')
|
|
377
|
+
.argument('<bundleName>', 'Name of the bundle to delete')
|
|
378
|
+
.action(async (bundleName, options) => {
|
|
379
|
+
const startTime = Date.now();
|
|
380
|
+
try {
|
|
381
|
+
trackCommand('server-rm', {
|
|
382
|
+
bundleName,
|
|
383
|
+
server: options.server,
|
|
384
|
+
});
|
|
385
|
+
console.log(chalk.cyan('ποΈ Server Bundle Delete\n'));
|
|
386
|
+
// Check prerequisites
|
|
387
|
+
await checkDeploymentService();
|
|
388
|
+
// Get credentials
|
|
389
|
+
const { serverName, accessCode, serverPin } = await getServerCredentials(options.server);
|
|
390
|
+
// Confirm deletion
|
|
391
|
+
const { confirm } = await inquirer.prompt([
|
|
392
|
+
{
|
|
393
|
+
type: 'confirm',
|
|
394
|
+
name: 'confirm',
|
|
395
|
+
message: `Delete bundle "${bundleName}" from server "${serverName}"?`,
|
|
396
|
+
default: false,
|
|
397
|
+
},
|
|
398
|
+
]);
|
|
399
|
+
if (!confirm) {
|
|
400
|
+
console.log(chalk.yellow('Bundle deletion cancelled'));
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
// Delete bundle
|
|
404
|
+
await deleteRemoteBundle(bundleName, serverName, accessCode, serverPin);
|
|
405
|
+
const duration = Date.now() - startTime;
|
|
406
|
+
trackCommandSuccess('server-rm', duration, {
|
|
407
|
+
bundleName,
|
|
408
|
+
serverName,
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
catch (error) {
|
|
412
|
+
const duration = Date.now() - startTime;
|
|
413
|
+
trackCommandError('server-rm', error, duration, {
|
|
414
|
+
bundleName,
|
|
415
|
+
server: options.server,
|
|
416
|
+
});
|
|
417
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
418
|
+
process.exit(1);
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
// Main server command
|
|
422
|
+
export const serverCommand = new Command('server').description('Manage Tonk servers');
|
|
423
|
+
serverCommand.addCommand(serverCreateCommand);
|
|
424
|
+
serverCommand.addCommand(serverLsCommand);
|
|
425
|
+
serverCommand.addCommand(serverPsCommand);
|
|
426
|
+
serverCommand.addCommand(serverRmCommand);
|
|
427
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare class TonkAuthManager {
|
|
2
|
+
private instance;
|
|
3
|
+
private initPromise;
|
|
4
|
+
private _isReady;
|
|
5
|
+
constructor();
|
|
6
|
+
private initialize;
|
|
7
|
+
get isSignedIn(): boolean;
|
|
8
|
+
get activeSubscription(): boolean;
|
|
9
|
+
get friendlyName(): string;
|
|
10
|
+
get isReady(): boolean;
|
|
11
|
+
ensureReady(): Promise<void>;
|
|
12
|
+
login(): Promise<any>;
|
|
13
|
+
logout(): Promise<any>;
|
|
14
|
+
}
|
|
15
|
+
export declare const tonkAuth: TonkAuthManager;
|
|
16
|
+
export declare function checkAuth(): boolean;
|
|
17
|
+
export declare const authHook: () => Promise<void>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=tonkAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonkAuth.d.ts","sourceRoot":"","sources":["../../src/lib/tonkAuth.ts"],"names":[],"mappings":"AAMA,cAAM,eAAe;IACnB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAS;;YAMX,UAAU;IAoBxB,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,KAAK;IAWL,MAAM;CAUb;AAED,eAAO,MAAM,QAAQ,iBAAwB,CAAC;AAE9C,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,eAAO,MAAM,QAAQ,qBA4BpB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { RESPONSES } from "@/utils/messages";
|
|
2
|
+
import { TonkAuth } from "@tonk/tonk-auth";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import inquirer from "inquirer";
|
|
5
|
+
// TonkAuth wrapped in a Singleton class with (non-blocking) async initilization keeps the CLI load snappy π’
|
|
6
|
+
class TonkAuthManager {
|
|
7
|
+
instance = null;
|
|
8
|
+
initPromise = null;
|
|
9
|
+
_isReady = false;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.initialize();
|
|
12
|
+
}
|
|
13
|
+
async initialize() {
|
|
14
|
+
if (this.initPromise)
|
|
15
|
+
return this.initPromise;
|
|
16
|
+
this.initPromise = TonkAuth({
|
|
17
|
+
onSubscriptionDisabled: () => {
|
|
18
|
+
console.log(chalk.red('π¨ Your subscription is inactive, upgrade your subscription to Deploy to Tonk'));
|
|
19
|
+
}
|
|
20
|
+
}).then(auth => {
|
|
21
|
+
this.instance = auth;
|
|
22
|
+
this._isReady = true;
|
|
23
|
+
return auth;
|
|
24
|
+
}).catch(error => {
|
|
25
|
+
console.error(chalk.red('Failed to initialize auth:'), error);
|
|
26
|
+
this._isReady = false;
|
|
27
|
+
return null;
|
|
28
|
+
});
|
|
29
|
+
return this.initPromise;
|
|
30
|
+
}
|
|
31
|
+
get isSignedIn() {
|
|
32
|
+
return this.instance?.isSignedIn ?? false;
|
|
33
|
+
}
|
|
34
|
+
get activeSubscription() {
|
|
35
|
+
return this.instance?.activeSubscription ?? false;
|
|
36
|
+
}
|
|
37
|
+
get friendlyName() {
|
|
38
|
+
return this.instance?.friendlyName ?? '';
|
|
39
|
+
}
|
|
40
|
+
get isReady() {
|
|
41
|
+
return this._isReady;
|
|
42
|
+
}
|
|
43
|
+
async ensureReady() {
|
|
44
|
+
if (!this._isReady && this.initPromise) {
|
|
45
|
+
await this.initPromise;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async login() {
|
|
49
|
+
await this.ensureReady();
|
|
50
|
+
if (!this.instance)
|
|
51
|
+
return { ok: false, error: 'Auth not initialized' };
|
|
52
|
+
try {
|
|
53
|
+
return await this.instance.login();
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return { ok: false, error: String(error) };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async logout() {
|
|
60
|
+
await this.ensureReady();
|
|
61
|
+
if (!this.instance)
|
|
62
|
+
return { ok: false, error: 'Auth not initialized' };
|
|
63
|
+
try {
|
|
64
|
+
return await this.instance.logout();
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
return { ok: false, error: String(error) };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export const tonkAuth = new TonkAuthManager();
|
|
72
|
+
export function checkAuth() {
|
|
73
|
+
return tonkAuth.isSignedIn && tonkAuth.activeSubscription;
|
|
74
|
+
}
|
|
75
|
+
export const authHook = async () => {
|
|
76
|
+
// Ensure auth is initialized
|
|
77
|
+
await tonkAuth.ensureReady();
|
|
78
|
+
if (checkAuth())
|
|
79
|
+
return;
|
|
80
|
+
console.log(chalk.yellow(RESPONSES.needSubscription));
|
|
81
|
+
const { confirm } = await inquirer.prompt([{
|
|
82
|
+
type: 'confirm',
|
|
83
|
+
name: 'confirm',
|
|
84
|
+
message: 'Do you want to login?',
|
|
85
|
+
default: true,
|
|
86
|
+
}]);
|
|
87
|
+
if (!confirm) {
|
|
88
|
+
console.log(chalk.yellow('Authentication required. Exiting.'));
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
console.log("\nπΊοΈ Great, let's sign you in using your browser!");
|
|
92
|
+
const res = await tonkAuth.login();
|
|
93
|
+
if (!res.ok) {
|
|
94
|
+
console.error(chalk.red(`Failed to login to Tonk: ${res.error || 'Unknown error'}`));
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
console.log(chalk.green(`π Welcome back to Tonk ${tonkAuth.friendlyName || 'user'}!\n`));
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=tonkAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonkAuth.js","sourceRoot":"","sources":["../../src/lib/tonkAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/tonk.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { createCommand } from './commands/create.js';
|
|
3
|
-
import { deployCommand
|
|
3
|
+
import { deployCommand } from './commands/deploy.js';
|
|
4
|
+
import { serverCommand } from './commands/server.js';
|
|
4
5
|
import { helloCommand } from './commands/hello.js';
|
|
5
6
|
import { lsCommand } from './commands/ls.js';
|
|
6
7
|
import { psCommand } from './commands/ps.js';
|
|
7
8
|
import { startCommand } from './commands/start.js';
|
|
8
9
|
import { killCommand } from './commands/kill.js';
|
|
10
|
+
import { deleteCommand } from './commands/delete.js';
|
|
9
11
|
import { pushCommand } from './commands/push.js';
|
|
10
12
|
import { proxyCommand } from './commands/proxy.js';
|
|
11
13
|
import { workerCommand } from './commands/worker/index.js';
|
|
@@ -16,6 +18,7 @@ import fs from 'node:fs';
|
|
|
16
18
|
import path from 'node:path';
|
|
17
19
|
import pkg from '../package.json' with { type: 'json' };
|
|
18
20
|
import { shutdownAnalytics, trackCommand, trackCommandError, trackCommandSuccess, } from './utils/analytics.js';
|
|
21
|
+
import { authCommand } from './commands/auth.js';
|
|
19
22
|
const program = new Command();
|
|
20
23
|
// Main program setup
|
|
21
24
|
program
|
|
@@ -27,6 +30,7 @@ program
|
|
|
27
30
|
console.log('\nWork in progress!');
|
|
28
31
|
});
|
|
29
32
|
program.addCommand(helloCommand);
|
|
33
|
+
program.addCommand(authCommand);
|
|
30
34
|
program.addCommand(createCommand);
|
|
31
35
|
program.addCommand(deployCommand);
|
|
32
36
|
program.addCommand(serverCommand);
|
|
@@ -36,6 +40,7 @@ program.addCommand(startCommand);
|
|
|
36
40
|
program.addCommand(psCommand);
|
|
37
41
|
program.addCommand(lsCommand);
|
|
38
42
|
program.addCommand(killCommand);
|
|
43
|
+
program.addCommand(deleteCommand);
|
|
39
44
|
program.addCommand(proxyCommand);
|
|
40
45
|
program.addCommand(workerCommand);
|
|
41
46
|
const startServer = async () => {
|
package/dist/tonk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tonk.js","sourceRoot":"","sources":["../src/tonk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"tonk.js","sourceRoot":"","sources":["../src/tonk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,SAAS;;;CAGd,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|