@tonk/cli 0.2.7 → 0.2.9
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/dist/commands/deploy.d.ts +4 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +433 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/hello/index.d.ts.map +1 -1
- package/dist/commands/hello/index.js +17 -12
- package/dist/commands/hello/index.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +7 -6
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +75 -16
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +26 -9
- package/dist/commands/start.js.map +1 -1
- package/dist/tonk.js +5 -1
- package/dist/tonk.js.map +1 -1
- package/dist/types/workerConfig.d.ts +6 -6
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAgiBlC,eAAO,MAAM,aAAa,SAmBI,CAAC;AAE/B,eAAO,MAAM,aAAa,SAEzB,CAAC"}
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
import inquirer from 'inquirer';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
import tar from 'tar';
|
|
9
|
+
import { trackCommand, trackCommandError, trackCommandSuccess, } from '../utils/analytics.js';
|
|
10
|
+
const DEPLOYMENT_SERVICE_URL = process.env.TONK_DEPLOYMENT_SERVICE_URL ||
|
|
11
|
+
'http://ec2-51-20-65-254.eu-north-1.compute.amazonaws.com:4444';
|
|
12
|
+
// 'http://localhost:4444';
|
|
13
|
+
/**
|
|
14
|
+
* Checks if the deployment service is reachable
|
|
15
|
+
*/
|
|
16
|
+
async function checkDeploymentService() {
|
|
17
|
+
try {
|
|
18
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/health`);
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
throw new Error(`Service returned ${response.status}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error(chalk.red('Error: Tonk deployment service is not available.'));
|
|
25
|
+
console.log(chalk.yellow('Please reach out for support or try again later.'));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reads the tonk.config.json file to get project information
|
|
31
|
+
*/
|
|
32
|
+
function readTonkConfig() {
|
|
33
|
+
const configPath = path.join(process.cwd(), 'tonk.config.json');
|
|
34
|
+
if (!fs.existsSync(configPath)) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
return JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.warn(chalk.yellow('Warning: Could not parse tonk.config.json'));
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Reads package.json to get project information
|
|
47
|
+
*/
|
|
48
|
+
function readPackageJson() {
|
|
49
|
+
const packagePath = path.join(process.cwd(), 'package.json');
|
|
50
|
+
if (!fs.existsSync(packagePath)) {
|
|
51
|
+
throw new Error('package.json not found. Are you in a Tonk project directory?');
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
return JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
throw new Error('Could not parse package.json');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Determines the app name for deployment
|
|
62
|
+
*/
|
|
63
|
+
function determineAppName(options, tonkConfig, packageJson) {
|
|
64
|
+
if (options.name) {
|
|
65
|
+
return options.name;
|
|
66
|
+
}
|
|
67
|
+
if (tonkConfig?.name) {
|
|
68
|
+
return tonkConfig.name.replace(/[^a-zA-Z0-9-]/g, '-').toLowerCase();
|
|
69
|
+
}
|
|
70
|
+
if (packageJson?.name) {
|
|
71
|
+
return packageJson.name
|
|
72
|
+
.replace(/^@.*\//, '')
|
|
73
|
+
.replace(/[^a-zA-Z0-9-]/g, '-')
|
|
74
|
+
.toLowerCase();
|
|
75
|
+
}
|
|
76
|
+
return path
|
|
77
|
+
.basename(process.cwd())
|
|
78
|
+
.replace(/[^a-zA-Z0-9-]/g, '-')
|
|
79
|
+
.toLowerCase();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates an app bundle for deployment
|
|
83
|
+
*/
|
|
84
|
+
async function createAppBundle() {
|
|
85
|
+
const spinner = ora('Creating app bundle...').start();
|
|
86
|
+
try {
|
|
87
|
+
const bundlePath = path.join('/tmp', `tonk-app-${Date.now()}.tar.gz`);
|
|
88
|
+
const cwd = process.cwd();
|
|
89
|
+
// Create tar archive excluding node_modules, .git, etc.
|
|
90
|
+
await tar.create({
|
|
91
|
+
file: bundlePath,
|
|
92
|
+
cwd,
|
|
93
|
+
gzip: true,
|
|
94
|
+
filter: (filePath) => {
|
|
95
|
+
const exclude = [
|
|
96
|
+
'node_modules',
|
|
97
|
+
'.git',
|
|
98
|
+
'.env',
|
|
99
|
+
'.next',
|
|
100
|
+
'coverage',
|
|
101
|
+
'*.log',
|
|
102
|
+
'.DS_Store',
|
|
103
|
+
'Thumbs.db',
|
|
104
|
+
];
|
|
105
|
+
return !exclude.some(pattern => filePath.includes(pattern));
|
|
106
|
+
},
|
|
107
|
+
}, ['.']);
|
|
108
|
+
spinner.succeed('App bundle created');
|
|
109
|
+
return bundlePath;
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
spinner.fail('Failed to create app bundle');
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Builds the Tonk app with the correct base path
|
|
118
|
+
*/
|
|
119
|
+
async function buildApp(skipBuild, bundleName) {
|
|
120
|
+
if (skipBuild) {
|
|
121
|
+
console.log(chalk.yellow('Skipping build step'));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const spinner = ora(`Building Tonk app...`).start();
|
|
125
|
+
try {
|
|
126
|
+
// Set the base path environment variable for Vite
|
|
127
|
+
const env = {
|
|
128
|
+
...process.env,
|
|
129
|
+
VITE_BASE_PATH: `/${bundleName}/`,
|
|
130
|
+
};
|
|
131
|
+
execSync('npm run build', { stdio: 'pipe', env });
|
|
132
|
+
spinner.succeed('App built successfully');
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
spinner.fail('Build failed');
|
|
136
|
+
throw new Error('Failed to build app. Make sure you have a build script in package.json');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Deploys a bundle to an existing Tonk server
|
|
141
|
+
*/
|
|
142
|
+
async function deployBundle(bundleName, serverName, tonkConfig, packageJson) {
|
|
143
|
+
const spinner = ora('Deploying...').start();
|
|
144
|
+
try {
|
|
145
|
+
// Create app bundle
|
|
146
|
+
spinner.text = 'Creating app bundle...';
|
|
147
|
+
const bundlePath = await createAppBundle();
|
|
148
|
+
// Stop spinner before prompting for access code
|
|
149
|
+
spinner.stop();
|
|
150
|
+
// Prompt for access code
|
|
151
|
+
const { accessCode } = await inquirer.prompt([
|
|
152
|
+
{
|
|
153
|
+
type: 'password',
|
|
154
|
+
name: 'accessCode',
|
|
155
|
+
message: 'Enter your access code:',
|
|
156
|
+
mask: '*',
|
|
157
|
+
validate: (input) => {
|
|
158
|
+
if (!input || input.trim().length === 0) {
|
|
159
|
+
return 'Access code is required';
|
|
160
|
+
}
|
|
161
|
+
return true;
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
]);
|
|
165
|
+
// Restart spinner for upload
|
|
166
|
+
spinner.start();
|
|
167
|
+
// Prepare form data
|
|
168
|
+
const formData = new FormData();
|
|
169
|
+
const bundleBuffer = fs.readFileSync(bundlePath);
|
|
170
|
+
const bundleBlob = new Blob([bundleBuffer], { type: 'application/gzip' });
|
|
171
|
+
formData.append('appBundle', bundleBlob, 'app-bundle.tar.gz');
|
|
172
|
+
formData.append('deployData', JSON.stringify({
|
|
173
|
+
bundleName,
|
|
174
|
+
serverName,
|
|
175
|
+
accessCode: accessCode.trim(),
|
|
176
|
+
deployType: 'bundle',
|
|
177
|
+
tonkConfig,
|
|
178
|
+
packageJson,
|
|
179
|
+
}));
|
|
180
|
+
// Send deployment request
|
|
181
|
+
spinner.text = 'Uploading bundle to server...';
|
|
182
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/deploy-bundle`, {
|
|
183
|
+
method: 'POST',
|
|
184
|
+
body: formData,
|
|
185
|
+
});
|
|
186
|
+
const result = await response.json();
|
|
187
|
+
// Clean up bundle file
|
|
188
|
+
fs.removeSync(bundlePath);
|
|
189
|
+
if (!response.ok || !result.success) {
|
|
190
|
+
throw new Error(result.error || 'Bundle deployment failed');
|
|
191
|
+
}
|
|
192
|
+
spinner.succeed('Bundle deployed successfully!');
|
|
193
|
+
console.log(chalk.green(`🚀 Your Tonk bundle is deployed!`));
|
|
194
|
+
console.log(chalk.blue(` URL: ${result.bundleUrl}`));
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
spinner.fail('Deployment failed');
|
|
198
|
+
throw error;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Creates a new Tonk server
|
|
203
|
+
*/
|
|
204
|
+
async function createServer(serverName, options) {
|
|
205
|
+
const spinner = ora('Creating Tonk server...').start();
|
|
206
|
+
try {
|
|
207
|
+
// Stop spinner before prompting for access code
|
|
208
|
+
spinner.stop();
|
|
209
|
+
// Prompt for access code
|
|
210
|
+
const { accessCode } = await inquirer.prompt([
|
|
211
|
+
{
|
|
212
|
+
type: 'password',
|
|
213
|
+
name: 'accessCode',
|
|
214
|
+
message: 'Enter your access code:',
|
|
215
|
+
mask: '*',
|
|
216
|
+
validate: (input) => {
|
|
217
|
+
if (!input || input.trim().length === 0) {
|
|
218
|
+
return 'Access code is required';
|
|
219
|
+
}
|
|
220
|
+
return true;
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
]);
|
|
224
|
+
// Restart spinner for server creation
|
|
225
|
+
spinner.start();
|
|
226
|
+
// Prepare form data for server creation
|
|
227
|
+
const formData = new FormData();
|
|
228
|
+
formData.append('serverData', JSON.stringify({
|
|
229
|
+
serverName,
|
|
230
|
+
accessCode: accessCode.trim(),
|
|
231
|
+
region: options.region || 'ord',
|
|
232
|
+
memory: options.memory || '1gb',
|
|
233
|
+
cpus: options.cpus || '1',
|
|
234
|
+
remote: options.remote || false,
|
|
235
|
+
deployType: 'server',
|
|
236
|
+
}));
|
|
237
|
+
// Send server creation request
|
|
238
|
+
spinner.text = 'Creating server...';
|
|
239
|
+
const response = await fetch(`${DEPLOYMENT_SERVICE_URL}/create-server`, {
|
|
240
|
+
method: 'POST',
|
|
241
|
+
body: formData,
|
|
242
|
+
});
|
|
243
|
+
const result = await response.json();
|
|
244
|
+
if (!response.ok || !result.success) {
|
|
245
|
+
throw new Error(result.error || 'Server creation failed');
|
|
246
|
+
}
|
|
247
|
+
spinner.succeed('Server created successfully!');
|
|
248
|
+
console.log(chalk.green(`🚀 Your Tonk server is ready!`));
|
|
249
|
+
console.log(chalk.blue(` URL: ${result.serverUrl}`));
|
|
250
|
+
console.log(chalk.yellow(` Use this server name for future bundle deployments: ${serverName}`));
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
spinner.fail('Server creation failed');
|
|
254
|
+
throw error;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Main deploy command handler
|
|
259
|
+
*/
|
|
260
|
+
async function handleDeployCommand(options) {
|
|
261
|
+
const startTime = Date.now();
|
|
262
|
+
try {
|
|
263
|
+
trackCommand('deploy', {
|
|
264
|
+
name: options.name,
|
|
265
|
+
server: options.server,
|
|
266
|
+
region: options.region,
|
|
267
|
+
memory: options.memory,
|
|
268
|
+
cpus: options.cpus,
|
|
269
|
+
skipBuild: options.skipBuild,
|
|
270
|
+
remote: options.remote,
|
|
271
|
+
});
|
|
272
|
+
console.log(chalk.cyan('🚀 Tonk Bundle Deploy\n'));
|
|
273
|
+
// Check prerequisites
|
|
274
|
+
console.log(chalk.blue('Checking prerequisites...'));
|
|
275
|
+
await checkDeploymentService();
|
|
276
|
+
// Read project configuration
|
|
277
|
+
const tonkConfig = readTonkConfig();
|
|
278
|
+
const packageJson = readPackageJson();
|
|
279
|
+
const bundleName = determineAppName(options, tonkConfig, packageJson);
|
|
280
|
+
// Determine server name
|
|
281
|
+
let serverName = options.server;
|
|
282
|
+
if (!serverName) {
|
|
283
|
+
const { inputServer } = await inquirer.prompt([
|
|
284
|
+
{
|
|
285
|
+
type: 'input',
|
|
286
|
+
name: 'inputServer',
|
|
287
|
+
message: 'Enter your Tonk server name:',
|
|
288
|
+
validate: (input) => {
|
|
289
|
+
if (!input || input.trim().length === 0) {
|
|
290
|
+
return 'Server name is required';
|
|
291
|
+
}
|
|
292
|
+
return true;
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
]);
|
|
296
|
+
serverName = inputServer.trim();
|
|
297
|
+
}
|
|
298
|
+
console.log(chalk.green(`✓ Bundle name: ${bundleName}`));
|
|
299
|
+
console.log(chalk.green(`✓ Target server: ${serverName}`));
|
|
300
|
+
// Confirm deployment
|
|
301
|
+
if (!options.name) {
|
|
302
|
+
const { confirm } = await inquirer.prompt([
|
|
303
|
+
{
|
|
304
|
+
type: 'confirm',
|
|
305
|
+
name: 'confirm',
|
|
306
|
+
message: `Deploy bundle "${bundleName}" to server "${serverName}"?`,
|
|
307
|
+
default: true,
|
|
308
|
+
},
|
|
309
|
+
]);
|
|
310
|
+
if (!confirm) {
|
|
311
|
+
console.log(chalk.yellow('Deployment cancelled'));
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// Build the app with the correct base path
|
|
316
|
+
await buildApp(options.skipBuild || false, bundleName);
|
|
317
|
+
// Deploy bundle to the Tonk server
|
|
318
|
+
await deployBundle(bundleName, serverName, tonkConfig, packageJson);
|
|
319
|
+
const duration = Date.now() - startTime;
|
|
320
|
+
trackCommandSuccess('deploy', duration, {
|
|
321
|
+
bundleName,
|
|
322
|
+
serverName,
|
|
323
|
+
region: options.region,
|
|
324
|
+
memory: options.memory,
|
|
325
|
+
cpus: options.cpus,
|
|
326
|
+
remote: options.remote,
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
const duration = Date.now() - startTime;
|
|
331
|
+
trackCommandError('deploy', error, duration, {
|
|
332
|
+
name: options.name,
|
|
333
|
+
server: options.server,
|
|
334
|
+
region: options.region,
|
|
335
|
+
});
|
|
336
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
337
|
+
process.exit(1);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Server create command handler
|
|
342
|
+
*/
|
|
343
|
+
async function handleServerCreateCommand(options) {
|
|
344
|
+
const startTime = Date.now();
|
|
345
|
+
try {
|
|
346
|
+
trackCommand('server-create', {
|
|
347
|
+
name: options.name,
|
|
348
|
+
region: options.region,
|
|
349
|
+
memory: options.memory,
|
|
350
|
+
cpus: options.cpus,
|
|
351
|
+
remote: options.remote,
|
|
352
|
+
});
|
|
353
|
+
console.log(chalk.cyan('🔧 Tonk Server Create\n'));
|
|
354
|
+
// Check prerequisites
|
|
355
|
+
console.log(chalk.blue('Checking prerequisites...'));
|
|
356
|
+
await checkDeploymentService();
|
|
357
|
+
// Determine server name
|
|
358
|
+
let serverName = options.name;
|
|
359
|
+
if (!serverName) {
|
|
360
|
+
const { inputName } = await inquirer.prompt([
|
|
361
|
+
{
|
|
362
|
+
type: 'input',
|
|
363
|
+
name: 'inputName',
|
|
364
|
+
message: 'Enter server name:',
|
|
365
|
+
validate: (input) => {
|
|
366
|
+
if (!input || input.trim().length === 0) {
|
|
367
|
+
return 'Server name is required';
|
|
368
|
+
}
|
|
369
|
+
return true;
|
|
370
|
+
},
|
|
371
|
+
},
|
|
372
|
+
]);
|
|
373
|
+
serverName = inputName
|
|
374
|
+
.trim()
|
|
375
|
+
.replace(/[^a-zA-Z0-9-]/g, '-')
|
|
376
|
+
.toLowerCase();
|
|
377
|
+
}
|
|
378
|
+
console.log(chalk.green(`✓ Server name: ${serverName}`));
|
|
379
|
+
// Confirm server creation
|
|
380
|
+
const { confirm } = await inquirer.prompt([
|
|
381
|
+
{
|
|
382
|
+
type: 'confirm',
|
|
383
|
+
name: 'confirm',
|
|
384
|
+
message: `Create Tonk server "${serverName}"?`,
|
|
385
|
+
default: true,
|
|
386
|
+
},
|
|
387
|
+
]);
|
|
388
|
+
if (!confirm) {
|
|
389
|
+
console.log(chalk.yellow('Server creation cancelled'));
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
// Create the server
|
|
393
|
+
await createServer(serverName, options);
|
|
394
|
+
const duration = Date.now() - startTime;
|
|
395
|
+
trackCommandSuccess('server-create', duration, {
|
|
396
|
+
serverName,
|
|
397
|
+
region: options.region,
|
|
398
|
+
memory: options.memory,
|
|
399
|
+
cpus: options.cpus,
|
|
400
|
+
remote: options.remote,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
catch (error) {
|
|
404
|
+
const duration = Date.now() - startTime;
|
|
405
|
+
trackCommandError('server-create', error, duration, {
|
|
406
|
+
name: options.name,
|
|
407
|
+
region: options.region,
|
|
408
|
+
});
|
|
409
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
410
|
+
process.exit(1);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
export const deployCommand = new Command('deploy')
|
|
414
|
+
.description('Deploy a Tonk bundle to an existing server')
|
|
415
|
+
.option('-n, --name <name>', 'Name for the deployed bundle (defaults to package.json name)')
|
|
416
|
+
.option('-s, --server <server>', 'Name of the Tonk server to deploy to')
|
|
417
|
+
.option('-r, --region <region>', 'Region to deploy to', 'ord')
|
|
418
|
+
.option('-m, --memory <memory>', 'Memory allocation (e.g., 256mb, 1gb)', '1gb')
|
|
419
|
+
.option('-c, --cpus <cpus>', 'Number of CPUs', '1')
|
|
420
|
+
.option('--skip-build', 'Skip the build step')
|
|
421
|
+
.option('--remote', 'Use remote Docker build (slower but works with limited local resources)')
|
|
422
|
+
.action(handleDeployCommand);
|
|
423
|
+
export const serverCommand = new Command('server').description('Manage Tonk servers');
|
|
424
|
+
const serverCreateCommand = new Command('create')
|
|
425
|
+
.description('Create a new Tonk server')
|
|
426
|
+
.option('-n, --name <name>', 'Name for the server')
|
|
427
|
+
.option('-r, --region <region>', 'Region to deploy to', 'ord')
|
|
428
|
+
.option('-m, --memory <memory>', 'Memory allocation (e.g., 256mb, 1gb)', '1gb')
|
|
429
|
+
.option('-c, --cpus <cpus>', 'Number of CPUs', '1')
|
|
430
|
+
.option('--remote', 'Use remote Docker build (slower but works with limited local resources)')
|
|
431
|
+
.action(handleServerCreateCommand);
|
|
432
|
+
serverCommand.addCommand(serverCreateCommand);
|
|
433
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/hello/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/hello/index.tsx"],"names":[],"mappings":"AAkaA,QAAA,MAAM,oBAAoB,kBAQzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { render, Box, Text, useInput } from 'ink';
|
|
3
3
|
// Original ascii art for reference (using template literals to preserve exact spacing)
|
|
4
|
-
const ORIGINAL_ASCII = `
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
`;
|
|
4
|
+
// const ORIGINAL_ASCII = `
|
|
5
|
+
// _____ U ___ u _ _ _ __
|
|
6
|
+
// |_ " _| \\/"_ \\/ | \\ |"| |"|/ /
|
|
7
|
+
// | | | | | |<| \\| |> | ' /
|
|
8
|
+
// /| |\\.-,_| |_| |U| |\\ |u U/| . \\\\u
|
|
9
|
+
// u |_|U \\_)-\\___/ |_| \\_| |_|\\_\\
|
|
10
|
+
// _// \\\\_ \\\\ || \\\\,-.,-,>> \\\\,-.
|
|
11
|
+
// (__) (__) (__) (_") (_/ \\.) (_/
|
|
12
|
+
// `;
|
|
13
13
|
// T character frames (using template literals to preserve exact spacing)
|
|
14
14
|
const T_FRAMES = [
|
|
15
15
|
// Frame 0 - regular T
|
|
@@ -149,16 +149,21 @@ const WelcomeMessage = () => {
|
|
|
149
149
|
React.createElement(Text, { bold: true, underline: true, color: "cyan" }, "Getting Started:")),
|
|
150
150
|
React.createElement(Box, { marginLeft: 2, marginTop: 1 },
|
|
151
151
|
React.createElement(Text, null,
|
|
152
|
-
"\u2022 Create a new Tonk
|
|
152
|
+
"\u2022 Create a new Tonk app or worker:",
|
|
153
153
|
' ',
|
|
154
154
|
React.createElement(Text, { bold: true, color: "yellow" }, "tonk create"))),
|
|
155
155
|
React.createElement(Box, { marginLeft: 2, marginTop: 1 },
|
|
156
156
|
React.createElement(Text, null, "\u2022 Open in your agentic editor and let the vibecode flow \uD83D\uDE0E")),
|
|
157
157
|
React.createElement(Box, { marginLeft: 2, marginTop: 1 },
|
|
158
158
|
React.createElement(Text, null,
|
|
159
|
-
"\u2022
|
|
159
|
+
"\u2022 View your project:",
|
|
160
160
|
' ',
|
|
161
161
|
React.createElement(Text, { bold: true, color: "yellow" }, "tonk start"))),
|
|
162
|
+
React.createElement(Box, { marginLeft: 2, marginTop: 1 },
|
|
163
|
+
React.createElement(Text, null,
|
|
164
|
+
"\u2022 Share it out:",
|
|
165
|
+
' ',
|
|
166
|
+
React.createElement(Text, { bold: true, color: "yellow" }, "tonk deploy"))),
|
|
162
167
|
React.createElement(Box, { marginLeft: 2, marginTop: 1 },
|
|
163
168
|
React.createElement(Text, null,
|
|
164
169
|
"\u2022 Read the documentation:",
|
|
@@ -188,7 +193,7 @@ const TonkAsciiAnimated = () => {
|
|
|
188
193
|
// Add state for exit handling
|
|
189
194
|
const [shouldExit, setShouldExit] = useState(false);
|
|
190
195
|
// Capture key input to exit
|
|
191
|
-
useInput((
|
|
196
|
+
useInput(() => {
|
|
192
197
|
setShouldExit(true);
|
|
193
198
|
});
|
|
194
199
|
// Exit effect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hello/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hello/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAmBlC,eAAO,MAAM,SAAS,SAqElB,CAAC"}
|
package/dist/commands/ps.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import fetch from 'node-fetch';
|
|
4
|
-
import { trackCommand, trackCommandError, trackCommandSuccess } from '../utils/analytics.js';
|
|
4
|
+
import { trackCommand, trackCommandError, trackCommandSuccess, } from '../utils/analytics.js';
|
|
5
5
|
export const psCommand = new Command('ps')
|
|
6
|
-
.description('List running
|
|
6
|
+
.description('List running bundles')
|
|
7
7
|
.option('-u, --url <url>', 'URL of the Tonk server', 'http://localhost:7777')
|
|
8
8
|
.action(async (options) => {
|
|
9
9
|
const startTime = Date.now();
|
|
@@ -26,12 +26,13 @@ export const psCommand = new Command('ps')
|
|
|
26
26
|
});
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
console.log(chalk.green(`Running
|
|
29
|
+
console.log(chalk.green(`Running bundles (${servers.length}):`));
|
|
30
30
|
// Format the output as a table
|
|
31
|
-
console.log(`${chalk.bold('ID'.padEnd(36))} | ${chalk.bold('Bundle'.padEnd(20))} | ${chalk.bold('Port'.padEnd(
|
|
32
|
-
console.log('-'.repeat(
|
|
31
|
+
console.log(`${chalk.bold('ID'.padEnd(36))} | ${chalk.bold('Bundle'.padEnd(20))} | ${chalk.bold('Route/Port'.padEnd(15))} | ${chalk.bold('Status')}`);
|
|
32
|
+
console.log('-'.repeat(85));
|
|
33
33
|
servers.forEach((server) => {
|
|
34
|
-
|
|
34
|
+
const routeOrPort = server.route || (server.port ? `:${server.port}` : 'N/A');
|
|
35
|
+
console.log(`${server.id.padEnd(36)} | ${server.bundleName.padEnd(20)} | ${routeOrPort.padEnd(15)} | ${server.status}`);
|
|
35
36
|
});
|
|
36
37
|
const duration = Date.now() - startTime;
|
|
37
38
|
trackCommandSuccess('ps', duration, {
|
package/dist/commands/ps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAyVlC,eAAO,MAAM,WAAW,SAcI,CAAC"}
|
package/dist/commands/push.js
CHANGED
|
@@ -8,7 +8,8 @@ import { fileFromPath } from 'formdata-node/file-from-path';
|
|
|
8
8
|
import { FormDataEncoder } from 'form-data-encoder';
|
|
9
9
|
import { Readable } from 'stream';
|
|
10
10
|
import * as tar from 'tar';
|
|
11
|
-
import {
|
|
11
|
+
import { spawn } from 'child_process';
|
|
12
|
+
import { trackCommand, trackCommandError, trackCommandSuccess, } from '../utils/analytics.js';
|
|
12
13
|
/**
|
|
13
14
|
* Validates that the source directory exists
|
|
14
15
|
*/
|
|
@@ -42,6 +43,37 @@ function determineBundleName(projectRoot, providedName) {
|
|
|
42
43
|
// Use provided name or default
|
|
43
44
|
return providedName || defaultName;
|
|
44
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Builds the project with the correct base path for route-based deployment
|
|
48
|
+
*/
|
|
49
|
+
async function buildWithBasePath(projectRoot, route) {
|
|
50
|
+
return new Promise((resolve, reject) => {
|
|
51
|
+
console.log(chalk.blue(`Building project with base path ${route}/...`));
|
|
52
|
+
const buildCommand = 'npm';
|
|
53
|
+
const buildArgs = ['run', 'build'];
|
|
54
|
+
const env = {
|
|
55
|
+
...process.env,
|
|
56
|
+
VITE_BASE_PATH: `${route}/`,
|
|
57
|
+
};
|
|
58
|
+
const buildProcess = spawn(buildCommand, buildArgs, {
|
|
59
|
+
cwd: projectRoot,
|
|
60
|
+
env,
|
|
61
|
+
stdio: 'inherit',
|
|
62
|
+
});
|
|
63
|
+
buildProcess.on('close', code => {
|
|
64
|
+
if (code === 0) {
|
|
65
|
+
console.log(chalk.green('Build completed successfully!'));
|
|
66
|
+
resolve();
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
reject(new Error(`Build failed with exit code ${code}`));
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
buildProcess.on('error', error => {
|
|
73
|
+
reject(new Error(`Failed to start build process: ${error.message}`));
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
45
77
|
/**
|
|
46
78
|
* Creates a tarball of the source directory
|
|
47
79
|
*/
|
|
@@ -88,14 +120,22 @@ async function uploadBundle(serverUrl, bundleName, tarballPath) {
|
|
|
88
120
|
/**
|
|
89
121
|
* Starts the bundle on the Tonk server
|
|
90
122
|
*/
|
|
91
|
-
async function startBundle(serverUrl, bundleName) {
|
|
123
|
+
async function startBundle(serverUrl, bundleName, route) {
|
|
92
124
|
console.log(chalk.blue(`Starting bundle '${bundleName}'...`));
|
|
125
|
+
const requestBody = { bundleName };
|
|
126
|
+
// Use provided route or default to bundle name
|
|
127
|
+
if (route) {
|
|
128
|
+
requestBody.route = route;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
requestBody.route = `/${bundleName}`;
|
|
132
|
+
}
|
|
93
133
|
const startResponse = await fetch(`${serverUrl}/start`, {
|
|
94
134
|
method: 'POST',
|
|
95
135
|
headers: {
|
|
96
136
|
'Content-Type': 'application/json',
|
|
97
137
|
},
|
|
98
|
-
body: JSON.stringify(
|
|
138
|
+
body: JSON.stringify(requestBody),
|
|
99
139
|
});
|
|
100
140
|
if (!startResponse.ok) {
|
|
101
141
|
const startErrorText = await startResponse.text();
|
|
@@ -103,9 +143,16 @@ async function startBundle(serverUrl, bundleName) {
|
|
|
103
143
|
throw new Error(`Error starting bundle: ${startErrorText}`);
|
|
104
144
|
}
|
|
105
145
|
const startResult = (await startResponse.json());
|
|
106
|
-
console.log(chalk.green(`Bundle
|
|
146
|
+
console.log(chalk.green(`Bundle started successfully!`));
|
|
107
147
|
console.log(chalk.green(`Server ID: ${startResult.id}`));
|
|
108
|
-
|
|
148
|
+
if (startResult.route) {
|
|
149
|
+
console.log(chalk.green(`Route: ${startResult.route}`));
|
|
150
|
+
console.log(chalk.green(`URL: ${startResult.url || `${serverUrl}${startResult.route}`}`));
|
|
151
|
+
}
|
|
152
|
+
else if (startResult.port) {
|
|
153
|
+
// Fallback for old port-based deployments
|
|
154
|
+
console.log(chalk.green(`Running on port: ${startResult.port}`));
|
|
155
|
+
}
|
|
109
156
|
console.log(chalk.green(`Status: ${startResult.status}`));
|
|
110
157
|
return startResult;
|
|
111
158
|
}
|
|
@@ -125,30 +172,38 @@ async function handlePushCommand(options) {
|
|
|
125
172
|
serverUrl,
|
|
126
173
|
sourceDir,
|
|
127
174
|
name: options.name,
|
|
128
|
-
|
|
175
|
+
noBuild: options.noBuild,
|
|
176
|
+
noStart: options.noStart,
|
|
177
|
+
route: options.route,
|
|
129
178
|
});
|
|
179
|
+
// Determine bundle name first (needed for route)
|
|
180
|
+
const bundleName = determineBundleName(projectRoot, options.name);
|
|
181
|
+
const route = options.route || `/${bundleName}`;
|
|
182
|
+
// Build with correct base path by default (unless --no-build is specified)
|
|
183
|
+
if (!options.noBuild) {
|
|
184
|
+
await buildWithBasePath(projectRoot, route);
|
|
185
|
+
}
|
|
130
186
|
// Validate source directory
|
|
131
187
|
validateSourceDirectory(sourcePath);
|
|
132
|
-
// Determine bundle name
|
|
133
|
-
const bundleName = determineBundleName(projectRoot, options.name);
|
|
134
188
|
// Create tarball
|
|
135
189
|
const tarballPath = await createTarball(sourcePath, projectRoot, bundleName);
|
|
136
190
|
// Upload bundle
|
|
137
191
|
const uploadResult = await uploadBundle(serverUrl, bundleName, tarballPath);
|
|
138
192
|
let startResult;
|
|
139
|
-
// Start bundle
|
|
140
|
-
if (options.
|
|
141
|
-
startResult = await startBundle(serverUrl, uploadResult.bundleName);
|
|
193
|
+
// Start bundle by default (unless --no-start is specified)
|
|
194
|
+
if (!options.noStart) {
|
|
195
|
+
startResult = await startBundle(serverUrl, uploadResult.bundleName, route);
|
|
142
196
|
}
|
|
143
197
|
else {
|
|
144
|
-
console.log(chalk.blue(`Use 'tonk start ${uploadResult.bundleName}' to start the bundle.`));
|
|
198
|
+
console.log(chalk.blue(`Use 'tonk start ${uploadResult.bundleName} --route ${route}' to start the bundle.`));
|
|
145
199
|
}
|
|
146
200
|
const duration = Date.now() - startTime;
|
|
147
201
|
trackCommandSuccess('push', duration, {
|
|
148
202
|
bundleName: uploadResult.bundleName,
|
|
149
203
|
serverUrl,
|
|
150
|
-
started: options.
|
|
204
|
+
started: !options.noStart,
|
|
151
205
|
serverId: startResult?.id,
|
|
206
|
+
route: startResult?.route,
|
|
152
207
|
port: startResult?.port,
|
|
153
208
|
});
|
|
154
209
|
}
|
|
@@ -158,17 +213,21 @@ async function handlePushCommand(options) {
|
|
|
158
213
|
serverUrl,
|
|
159
214
|
sourceDir,
|
|
160
215
|
name: options.name,
|
|
161
|
-
|
|
216
|
+
noBuild: options.noBuild,
|
|
217
|
+
noStart: options.noStart,
|
|
218
|
+
route: options.route,
|
|
162
219
|
});
|
|
163
220
|
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
164
221
|
process.exit(1);
|
|
165
222
|
}
|
|
166
223
|
}
|
|
167
224
|
export const pushCommand = new Command('push')
|
|
168
|
-
.description('Package and
|
|
225
|
+
.description('Package, upload, build and start a bundle on the Tonk server')
|
|
169
226
|
.option('-u, --url <url>', 'URL of the Tonk server', 'http://localhost:7777')
|
|
170
227
|
.option('-n, --name <name>', 'Name for the bundle (defaults to directory name)')
|
|
171
228
|
.option('-d, --dir <dir>', 'Directory to bundle (defaults to ./dist)')
|
|
172
|
-
.option('-
|
|
229
|
+
.option('-r, --route <route>', 'Route path for the bundle (defaults to /bundleName)')
|
|
230
|
+
.option('--no-build', 'Skip building the project before pushing')
|
|
231
|
+
.option('--no-start', 'Skip starting the bundle after upload')
|
|
173
232
|
.action(handlePushCommand);
|
|
174
233
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAkBlC,eAAO,MAAM,YAAY,SA6FrB,CAAC"}
|
package/dist/commands/start.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import fetch from 'node-fetch';
|
|
4
|
-
import { trackCommand, trackCommandError, trackCommandSuccess } from '../utils/analytics.js';
|
|
4
|
+
import { trackCommand, trackCommandError, trackCommandSuccess, } from '../utils/analytics.js';
|
|
5
5
|
export const startCommand = new Command('start')
|
|
6
|
-
.description('Start a bundle
|
|
6
|
+
.description('Start a bundle on a route')
|
|
7
7
|
.option('-u, --url <url>', 'URL of the Tonk server', 'http://localhost:7777')
|
|
8
|
-
.option('-
|
|
8
|
+
.option('-r, --route <route>', 'Route path for the bundle (defaults to /bundleName)')
|
|
9
|
+
.option('-p, --port <port>', 'Port for the bundle server (legacy option, prefer --route)')
|
|
9
10
|
.argument('<bundleName>', 'Name of the bundle to start')
|
|
10
11
|
.action(async (bundleName, options) => {
|
|
11
12
|
const startTime = Date.now();
|
|
@@ -14,16 +15,24 @@ export const startCommand = new Command('start')
|
|
|
14
15
|
trackCommand('start', {
|
|
15
16
|
bundleName,
|
|
16
17
|
serverUrl,
|
|
18
|
+
route: options.route,
|
|
17
19
|
port: options.port,
|
|
18
20
|
});
|
|
19
|
-
console.log(chalk.blue(`Starting bundle
|
|
21
|
+
console.log(chalk.blue(`Starting bundle ${bundleName}...`));
|
|
20
22
|
const requestBody = {
|
|
21
23
|
bundleName,
|
|
22
24
|
};
|
|
23
|
-
//
|
|
24
|
-
if (options.
|
|
25
|
+
// Prefer route over port
|
|
26
|
+
if (options.route) {
|
|
27
|
+
requestBody.route = options.route;
|
|
28
|
+
}
|
|
29
|
+
else if (options.port) {
|
|
25
30
|
requestBody.port = parseInt(options.port, 10);
|
|
26
31
|
}
|
|
32
|
+
else {
|
|
33
|
+
// Default to route-based deployment
|
|
34
|
+
requestBody.route = `/${bundleName}`;
|
|
35
|
+
}
|
|
27
36
|
const response = await fetch(`${serverUrl}/start`, {
|
|
28
37
|
method: 'POST',
|
|
29
38
|
headers: {
|
|
@@ -36,15 +45,23 @@ export const startCommand = new Command('start')
|
|
|
36
45
|
throw new Error(`Server error: ${errorText}`);
|
|
37
46
|
}
|
|
38
47
|
const result = (await response.json());
|
|
39
|
-
console.log(chalk.green('Bundle
|
|
48
|
+
console.log(chalk.green('Bundle started successfully!'));
|
|
40
49
|
console.log(chalk.green(`Server ID: ${result.id}`));
|
|
41
|
-
|
|
50
|
+
if (result.route) {
|
|
51
|
+
console.log(chalk.green(`Route: ${result.route}`));
|
|
52
|
+
console.log(chalk.green(`URL: ${result.url || `${serverUrl}${result.route}`}`));
|
|
53
|
+
}
|
|
54
|
+
else if (result.port) {
|
|
55
|
+
// Fallback for legacy port-based deployments
|
|
56
|
+
console.log(chalk.green(`Running on port: ${result.port}`));
|
|
57
|
+
}
|
|
42
58
|
console.log(chalk.green(`Status: ${result.status}`));
|
|
43
|
-
console.log(chalk.blue(`Use 'tonk ps' to see all running
|
|
59
|
+
console.log(chalk.blue(`Use 'tonk ps' to see all running bundles`));
|
|
44
60
|
const duration = Date.now() - startTime;
|
|
45
61
|
trackCommandSuccess('start', duration, {
|
|
46
62
|
bundleName,
|
|
47
63
|
serverUrl,
|
|
64
|
+
route: result.route,
|
|
48
65
|
port: result.port,
|
|
49
66
|
serverId: result.id,
|
|
50
67
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
package/dist/tonk.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { createCommand } from './commands/create.js';
|
|
3
|
+
import { deployCommand, serverCommand } from './commands/deploy.js';
|
|
3
4
|
import { helloCommand } from './commands/hello.js';
|
|
4
5
|
import { lsCommand } from './commands/ls.js';
|
|
5
6
|
import { psCommand } from './commands/ps.js';
|
|
@@ -13,19 +14,22 @@ import chalk from 'chalk';
|
|
|
13
14
|
import envPaths from 'env-paths';
|
|
14
15
|
import fs from 'node:fs';
|
|
15
16
|
import path from 'node:path';
|
|
17
|
+
import pkg from '../package.json' with { type: 'json' };
|
|
16
18
|
import { shutdownAnalytics, trackCommand, trackCommandError, trackCommandSuccess } from './utils/analytics.js';
|
|
17
19
|
const program = new Command();
|
|
18
20
|
// Main program setup
|
|
19
21
|
program
|
|
20
22
|
.name('tonk')
|
|
21
23
|
.description('The tonk cli helps you to manage your tonk stack and apps.')
|
|
22
|
-
.version(
|
|
24
|
+
.version(pkg.version)
|
|
23
25
|
.option('-d', 'Run the Tonk daemon')
|
|
24
26
|
.on('--help', () => {
|
|
25
27
|
console.log('\nWork in progress!');
|
|
26
28
|
});
|
|
27
29
|
program.addCommand(helloCommand);
|
|
28
30
|
program.addCommand(createCommand);
|
|
31
|
+
program.addCommand(deployCommand);
|
|
32
|
+
program.addCommand(serverCommand);
|
|
29
33
|
// Add bundle management commands
|
|
30
34
|
program.addCommand(pushCommand);
|
|
31
35
|
program.addCommand(startCommand);
|
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,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAE7G,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tonk.js","sourceRoot":"","sources":["../src/tonk.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,13 +61,13 @@ export declare const WorkerConfigSchema: z.ZodObject<{
|
|
|
61
61
|
instances: number;
|
|
62
62
|
autorestart: boolean;
|
|
63
63
|
watch: boolean;
|
|
64
|
-
env?: Record<string, string> | undefined;
|
|
65
64
|
cwd?: string | undefined;
|
|
65
|
+
env?: Record<string, string> | undefined;
|
|
66
66
|
max_memory_restart?: string | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
script: string;
|
|
69
|
-
env?: Record<string, string> | undefined;
|
|
70
69
|
cwd?: string | undefined;
|
|
70
|
+
env?: Record<string, string> | undefined;
|
|
71
71
|
instances?: number | undefined;
|
|
72
72
|
autorestart?: boolean | undefined;
|
|
73
73
|
watch?: boolean | undefined;
|
|
@@ -81,40 +81,40 @@ export declare const WorkerConfigSchema: z.ZodObject<{
|
|
|
81
81
|
instances: number;
|
|
82
82
|
autorestart: boolean;
|
|
83
83
|
watch: boolean;
|
|
84
|
-
env?: Record<string, string> | undefined;
|
|
85
84
|
cwd?: string | undefined;
|
|
85
|
+
env?: Record<string, string> | undefined;
|
|
86
86
|
max_memory_restart?: string | undefined;
|
|
87
87
|
};
|
|
88
88
|
endpoint: string;
|
|
89
89
|
protocol: string;
|
|
90
|
+
version?: string | undefined;
|
|
90
91
|
healthCheck?: {
|
|
91
92
|
method: string;
|
|
92
93
|
timeout: number;
|
|
93
94
|
interval: number;
|
|
94
95
|
endpoint?: string | undefined;
|
|
95
96
|
} | undefined;
|
|
96
|
-
version?: string | undefined;
|
|
97
97
|
description?: string | undefined;
|
|
98
98
|
config?: Record<string, any> | undefined;
|
|
99
99
|
}, {
|
|
100
100
|
name: string;
|
|
101
101
|
process: {
|
|
102
102
|
script: string;
|
|
103
|
-
env?: Record<string, string> | undefined;
|
|
104
103
|
cwd?: string | undefined;
|
|
104
|
+
env?: Record<string, string> | undefined;
|
|
105
105
|
instances?: number | undefined;
|
|
106
106
|
autorestart?: boolean | undefined;
|
|
107
107
|
watch?: boolean | undefined;
|
|
108
108
|
max_memory_restart?: string | undefined;
|
|
109
109
|
};
|
|
110
110
|
endpoint: string;
|
|
111
|
+
version?: string | undefined;
|
|
111
112
|
healthCheck?: {
|
|
112
113
|
method?: string | undefined;
|
|
113
114
|
endpoint?: string | undefined;
|
|
114
115
|
timeout?: number | undefined;
|
|
115
116
|
interval?: number | undefined;
|
|
116
117
|
} | undefined;
|
|
117
|
-
version?: string | undefined;
|
|
118
118
|
description?: string | undefined;
|
|
119
119
|
protocol?: string | undefined;
|
|
120
120
|
config?: Record<string, any> | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonk/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"description": "The Tonk stack command line utility",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"posttest": "npm run lint"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@tonk/server": "^0.2.
|
|
39
|
+
"@tonk/server": "^0.2.9",
|
|
40
40
|
"chalk": "^5.3.0",
|
|
41
41
|
"cli-table3": "^0.6.5",
|
|
42
42
|
"commander": "^11.1.0",
|