@tonk/cli 0.1.13 → 0.2.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 (54) hide show
  1. package/README.md +84 -5
  2. package/dist/commands/create.d.ts.map +1 -1
  3. package/dist/commands/create.js +9 -9
  4. package/dist/commands/create.js.map +1 -1
  5. package/dist/commands/hello/index.d.ts +3 -0
  6. package/dist/commands/hello/index.d.ts.map +1 -0
  7. package/dist/commands/hello/index.js +291 -0
  8. package/dist/commands/hello/index.js.map +1 -0
  9. package/dist/commands/hello.d.ts.map +1 -1
  10. package/dist/commands/hello.js +68 -31
  11. package/dist/commands/hello.js.map +1 -1
  12. package/dist/commands/init.d.ts +3 -0
  13. package/dist/commands/init.d.ts.map +1 -0
  14. package/dist/commands/init.js +66 -0
  15. package/dist/commands/init.js.map +1 -0
  16. package/dist/commands/kill.d.ts +3 -0
  17. package/dist/commands/kill.d.ts.map +1 -0
  18. package/dist/commands/kill.js +38 -0
  19. package/dist/commands/kill.js.map +1 -0
  20. package/dist/commands/ls.d.ts +3 -0
  21. package/dist/commands/ls.d.ts.map +1 -0
  22. package/dist/commands/ls.js +31 -0
  23. package/dist/commands/ls.js.map +1 -0
  24. package/dist/commands/ps.d.ts +3 -0
  25. package/dist/commands/ps.d.ts.map +1 -0
  26. package/dist/commands/ps.js +34 -0
  27. package/dist/commands/ps.js.map +1 -0
  28. package/dist/commands/push.d.ts +3 -0
  29. package/dist/commands/push.d.ts.map +1 -0
  30. package/dist/commands/push.js +150 -0
  31. package/dist/commands/push.js.map +1 -0
  32. package/dist/commands/start.d.ts +3 -0
  33. package/dist/commands/start.d.ts.map +1 -0
  34. package/dist/commands/start.js +43 -0
  35. package/dist/commands/start.js.map +1 -0
  36. package/dist/tonk.js +71 -15
  37. package/dist/tonk.js.map +1 -1
  38. package/package.json +13 -3
  39. package/dist/commands/config.d.ts +0 -3
  40. package/dist/commands/config.d.ts.map +0 -1
  41. package/dist/commands/config.js +0 -338
  42. package/dist/commands/config.js.map +0 -1
  43. package/dist/commands/deploy.d.ts +0 -3
  44. package/dist/commands/deploy.d.ts.map +0 -1
  45. package/dist/commands/deploy.js +0 -460
  46. package/dist/commands/deploy.js.map +0 -1
  47. package/dist/commands/dev.d.ts +0 -3
  48. package/dist/commands/dev.d.ts.map +0 -1
  49. package/dist/commands/dev.js +0 -71
  50. package/dist/commands/dev.js.map +0 -1
  51. package/dist/commands/serve.d.ts +0 -3
  52. package/dist/commands/serve.d.ts.map +0 -1
  53. package/dist/commands/serve.js +0 -146
  54. package/dist/commands/serve.js.map +0 -1
@@ -1,146 +0,0 @@
1
- import { Command } from 'commander';
2
- import path from 'path';
3
- import fs from 'fs';
4
- import { createServer } from '@tonk/server';
5
- import chalk from 'chalk';
6
- function normalizePath(inputPath) {
7
- // If path starts with ~, expand to home directory
8
- if (inputPath.startsWith('~/')) {
9
- const homedir = process.env.HOME || process.env.USERPROFILE || '/home/node';
10
- return path.join(homedir, inputPath.substring(2));
11
- }
12
- // If path is an absolute path not in the user's home directory, redirect it
13
- if (inputPath.startsWith('/') &&
14
- !inputPath.startsWith('/home/') &&
15
- !inputPath.includes('node_modules')) {
16
- const homedir = process.env.HOME || process.env.USERPROFILE || '/home/node';
17
- return path.join(homedir, 'tonk-data', inputPath);
18
- }
19
- return inputPath;
20
- }
21
- export const serveCommand = new Command('serve')
22
- .description('Start a Tonk app in production mode')
23
- .option('-p, --port <port>', 'Port to run the server on', '8080')
24
- .option('-d, --dist <path>', 'Path to the dist directory', 'dist')
25
- .action(async (options) => {
26
- const projectRoot = process.cwd();
27
- const port = parseInt(options.port, 10);
28
- const distPath = path.isAbsolute(options.dist)
29
- ? options.dist
30
- : path.join(projectRoot, options.dist);
31
- const configFilePath = path.join(projectRoot, 'tonk.config.json');
32
- // Check if the dist directory exists
33
- if (!fs.existsSync(distPath)) {
34
- console.error(chalk.red(`Error: Dist directory not found at ${distPath}. Make sure you've built the project first.`));
35
- console.log(chalk.yellow(`Tip: Run 'npm run build' or 'yarn build' before serving.`));
36
- process.exit(1);
37
- }
38
- // Check if dist/index.html exists
39
- const indexPath = path.join(distPath, 'index.html');
40
- if (!fs.existsSync(indexPath)) {
41
- console.error(chalk.red(`Error: index.html not found in ${distPath}. The build output may be incomplete.`));
42
- process.exit(1);
43
- }
44
- // Check for Backblaze and Filesystem configurations
45
- let backblazeConfig = null;
46
- let filesystemConfig = null;
47
- let primaryStorage = null;
48
- if (fs.existsSync(configFilePath)) {
49
- try {
50
- const configData = JSON.parse(fs.readFileSync(configFilePath, 'utf8'));
51
- // If backblaze is configured and enabled in the config file
52
- if (configData.backblaze && configData.backblaze.enabled) {
53
- backblazeConfig = {
54
- enabled: true,
55
- applicationKeyId: configData.backblaze.applicationKeyId,
56
- applicationKey: configData.backblaze.applicationKey,
57
- bucketId: configData.backblaze.bucketId,
58
- bucketName: configData.backblaze.bucketName,
59
- syncInterval: configData.backblaze.syncInterval || 300000, // 5 minutes default
60
- maxRetries: configData.backblaze.maxRetries || 3,
61
- };
62
- console.log(chalk.blue('Backblaze B2 backup enabled from config'));
63
- }
64
- // If filesystem storage is configured and enabled in the config file
65
- if (configData.filesystem && configData.filesystem.enabled) {
66
- let storagePath = configData.filesystem.storagePath || '~/tonk-data';
67
- storagePath = normalizePath(storagePath);
68
- filesystemConfig = {
69
- enabled: true,
70
- storagePath,
71
- syncInterval: configData.filesystem.syncInterval || 30000, // 30 seconds default
72
- createIfMissing: configData.filesystem.createIfMissing !== false, // default to true
73
- };
74
- console.log(chalk.blue('Filesystem storage enabled from config'));
75
- }
76
- // Check for primary storage configuration
77
- if (configData.primaryStorage &&
78
- (configData.primaryStorage === 'backblaze' ||
79
- configData.primaryStorage === 'filesystem')) {
80
- primaryStorage = configData.primaryStorage;
81
- console.log(chalk.blue(`Primary storage set to ${primaryStorage} from config`));
82
- }
83
- }
84
- catch (error) {
85
- console.warn(chalk.yellow(`Warning: Could not parse config file at ${configFilePath}. Storage backups will not be enabled.`));
86
- console.warn(chalk.yellow(`Error details: ${error}`));
87
- }
88
- }
89
- console.log(chalk.blue('Starting Tonk production server...'));
90
- try {
91
- // Start the production server with storage configs if available
92
- const serverConfig = {
93
- port,
94
- mode: 'production',
95
- distPath,
96
- verbose: true,
97
- };
98
- // Add Backblaze configuration if available
99
- if (backblazeConfig) {
100
- serverConfig.storage = {
101
- backblaze: backblazeConfig,
102
- };
103
- }
104
- // Add Filesystem configuration if available
105
- if (filesystemConfig) {
106
- serverConfig.filesystemStorage = filesystemConfig;
107
- }
108
- // Set primary storage if both are configured
109
- if (primaryStorage && backblazeConfig && filesystemConfig) {
110
- serverConfig.primaryStorage = primaryStorage;
111
- }
112
- const server = await createServer(serverConfig);
113
- // Log success info
114
- console.log(chalk.green(`Server running at http://localhost:${port}`));
115
- if (backblazeConfig) {
116
- console.log(chalk.green(`
117
- Backblaze B2 backup is enabled for your Automerge documents.
118
- Documents will be synced to your B2 bucket: ${backblazeConfig.bucketName}
119
- `));
120
- }
121
- if (filesystemConfig) {
122
- console.log(chalk.green(`
123
- Filesystem storage is enabled for your Automerge documents.
124
- Documents will be stored at: ${filesystemConfig.storagePath}
125
- `));
126
- }
127
- if (primaryStorage && backblazeConfig && filesystemConfig) {
128
- console.log(chalk.green(`
129
- Primary storage is set to: ${primaryStorage}
130
- `));
131
- }
132
- console.log(chalk.blue('Press Ctrl+C to stop the server'));
133
- // Handle process termination
134
- const cleanup = () => {
135
- console.log(chalk.yellow('\nShutting down server...'));
136
- server.stop().catch(console.error);
137
- };
138
- process.on('SIGINT', cleanup);
139
- process.on('SIGTERM', cleanup);
140
- }
141
- catch (error) {
142
- console.error(chalk.red('Failed to start server:'), error);
143
- process.exit(1);
144
- }
145
- });
146
- //# sourceMappingURL=serve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,SAAS,aAAa,CAAC,SAAiB;IACtC,kDAAkD;IAClD,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,IACE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QACzB,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/B,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EACnC,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,CAAC;KAChE,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,CAAC;KACjE,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;IACtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,OAAO,CAAC,IAAI;QACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAElE,qCAAqC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,sCAAsC,QAAQ,6CAA6C,CAC5F,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,0DAA0D,CAC3D,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kCAAkC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,kCAAkC,QAAQ,uCAAuC,CAClF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oDAAoD;IACpD,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,IAAI,cAAc,GAAG,IAAI,CAAC;IAE1B,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YAEvE,4DAA4D;YAC5D,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACzD,eAAe,GAAG;oBAChB,OAAO,EAAE,IAAI;oBACb,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC,gBAAgB;oBACvD,cAAc,EAAE,UAAU,CAAC,SAAS,CAAC,cAAc;oBACnD,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ;oBACvC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU;oBAC3C,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY,IAAI,MAAM,EAAE,oBAAoB;oBAC/E,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC;iBACjD,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,qEAAqE;YACrE,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,IAAI,aAAa,CAAC;gBACrE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;gBAEzC,gBAAgB,GAAG;oBACjB,OAAO,EAAE,IAAI;oBACb,WAAW;oBACX,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,YAAY,IAAI,KAAK,EAAE,qBAAqB;oBAChF,eAAe,EAAE,UAAU,CAAC,UAAU,CAAC,eAAe,KAAK,KAAK,EAAE,kBAAkB;iBACrF,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,0CAA0C;YAC1C,IACE,UAAU,CAAC,cAAc;gBACzB,CAAC,UAAU,CAAC,cAAc,KAAK,WAAW;oBACxC,UAAU,CAAC,cAAc,KAAK,YAAY,CAAC,EAC7C,CAAC;gBACD,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;gBAC3C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,0BAA0B,cAAc,cAAc,CAAC,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,2CAA2C,cAAc,wCAAwC,CAClG,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,gEAAgE;QAChE,MAAM,YAAY,GAAQ;YACxB,IAAI;YACJ,IAAI,EAAE,YAAY;YAClB,QAAQ;YACR,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,2CAA2C;QAC3C,IAAI,eAAe,EAAE,CAAC;YACpB,YAAY,CAAC,OAAO,GAAG;gBACrB,SAAS,EAAE,eAAe;aAC3B,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IAAI,gBAAgB,EAAE,CAAC;YACrB,YAAY,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QACpD,CAAC;QAED,6CAA6C;QAC7C,IAAI,cAAc,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC1D,YAAY,CAAC,cAAc,GAAG,cAAc,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;QAEhD,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEvE,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC;;8CAEwB,eAAe,CAAC,UAAU;WAC7D,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC;;+BAES,gBAAgB,CAAC,WAAW;WAChD,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC;6BACO,cAAc;WAChC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAE3D,6BAA6B;QAC7B,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}