@tonk/cli 0.1.12 → 0.1.14

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 CHANGED
@@ -67,6 +67,28 @@ Options:
67
67
  - `-k, --key <path>` - Path to SSH key file
68
68
  - `-u, --user <name>` - SSH username (default: ec2-user)
69
69
  - `-t, --token <token>` - Pinggy.io access token for public URL
70
+ - `-b, --backblaze` - Enable Backblaze B2 storage for document backup
71
+ - `-f, --filesystem` - Enable filesystem storage for document backup
72
+
73
+ #### Persistence Features
74
+
75
+ Tonk supports multiple options for persisting your documents:
76
+
77
+ 1. **Backblaze B2 Storage**: Cloud-based backup for your documents
78
+ - Secure, scalable cloud storage
79
+ - Automatic synchronization at configurable intervals
80
+ - Requires a Backblaze B2 account with bucket and application keys
81
+
82
+ 2. **Filesystem Storage**: Local file-based storage on your server
83
+ - Store documents directly on the server's filesystem
84
+ - Configurable storage path and sync intervals
85
+ - Automatic directory creation
86
+
87
+ 3. **Dual Storage**: Use both Backblaze and filesystem storage
88
+ - Configure a primary storage option
89
+ - Automatic fallback to secondary storage
90
+
91
+ During deployment, you'll be guided through setting up your preferred storage options interactively if not specified via command-line options.
70
92
 
71
93
  ## Development
72
94
 
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGlC,eAAO,MAAM,aAAa,SA2BtB,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGlC,eAAO,MAAM,aAAa,SAyBtB,CAAC"}
@@ -2,26 +2,26 @@ import { Command } from 'commander';
2
2
  import child_process from 'child_process';
3
3
  export const createCommand = new Command('create')
4
4
  .description('Create a new tonk application or component')
5
- .argument('[name]', 'Name of the application')
6
- .action(name => {
7
- console.log('Creating a new tonk app...');
5
+ .option('-i, --init', 'initialize in the folder')
6
+ .action(options => {
8
7
  try {
9
8
  // Build the command with any passed options
10
- let createCommand = 'npx @tonk/create';
11
- // Pass through any options provided to the CLI
12
- if (name)
13
- createCommand += ` "${name}"`;
9
+ const createCommand = `npx @tonk/create ${options.init ? '-i' : ''}`;
14
10
  console.log(createCommand);
15
11
  // Execute the create package
16
12
  child_process.execSync(createCommand, {
17
13
  stdio: 'inherit',
18
14
  env: { ...process.env },
19
15
  });
20
- console.log('🎉 Tonk app created successfully!');
21
16
  process.exit(0);
22
17
  }
23
18
  catch (error) {
24
- console.error('Failed to create Tonk app:', error);
19
+ if (error.status === 8) {
20
+ console.error('Failed to generate Tonk code:', error);
21
+ }
22
+ else {
23
+ console.error('Failed to generate Tonk code:', error);
24
+ }
25
25
  process.exit(1);
26
26
  }
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,aAAa,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,4CAA4C,CAAC;KACzD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,IAAI,CAAC,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,4CAA4C;QAC5C,IAAI,aAAa,GAAG,kBAAkB,CAAC;QAEvC,+CAA+C;QAC/C,IAAI,IAAI;YAAE,aAAa,IAAI,KAAK,IAAI,GAAG,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE3B,6BAA6B;QAC7B,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE;YACpC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,EAAC,GAAG,OAAO,CAAC,GAAG,EAAC;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,aAAa,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC;KAChD,MAAM,CAAC,OAAO,CAAC,EAAE;IAChB,IAAI,CAAC;QACH,4CAA4C;QAC5C,MAAM,aAAa,GAAG,oBAAoB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAErE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE3B,6BAA6B;QAC7B,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE;YACpC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,EAAC,GAAG,OAAO,CAAC,GAAG,EAAC;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAOlC,eAAO,MAAM,UAAU,SAmFnB,CAAC"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAMlC,eAAO,MAAM,UAAU,SAwGnB,CAAC"}
@@ -1,14 +1,13 @@
1
1
  import { Command } from 'commander';
2
2
  import path from 'path';
3
3
  import { spawn } from 'child_process';
4
- import { createServer } from '@tonk/server';
5
4
  import chalk from 'chalk';
6
5
  import fs from 'fs';
7
6
  export const devCommand = new Command('dev')
8
7
  .description('Start a Tonk app in development mode')
9
8
  .option('-p, --port <port>', 'Port to run the sync server on', '4080')
10
9
  .option('-f, --frontend-port <port>', 'Port to run the frontend dev server on', '3000')
11
- .option('--no-open', 'Disable auto-opening the browser')
10
+ .option('--open', 'Enable auto-opening the browser')
12
11
  .action(async (options) => {
13
12
  const projectRoot = process.cwd();
14
13
  const port = parseInt(options.port, 10);
@@ -20,13 +19,6 @@ export const devCommand = new Command('dev')
20
19
  process.exit(1);
21
20
  }
22
21
  console.log(chalk.blue('Starting Tonk development environment...'));
23
- // Start the sync server
24
- const server = await createServer({
25
- port,
26
- mode: 'development',
27
- verbose: true,
28
- distPath: undefined,
29
- });
30
22
  // Start webpack dev server
31
23
  const webpackArgs = [
32
24
  'webpack',
@@ -48,14 +40,41 @@ export const devCommand = new Command('dev')
48
40
  shell: true,
49
41
  env: {
50
42
  ...process.env,
51
- PORT: frontendPort.toString(),
43
+ // PORT: frontendPort.toString(),
44
+ // We now assume server is running on 8080 at all times with the hub
45
+ PORT: '8080',
52
46
  },
53
47
  });
48
+ let serverProcess;
49
+ const serverPath = path.join(projectRoot, 'server', 'dist', 'index.js');
50
+ try {
51
+ if (fs.existsSync(serverPath)) {
52
+ serverProcess = spawn('node', [serverPath], {
53
+ cwd: projectRoot,
54
+ stdio: 'inherit',
55
+ shell: true,
56
+ env: {
57
+ ...process.env,
58
+ },
59
+ });
60
+ serverProcess.on('exit', code => {
61
+ if (code !== 0 && code !== null) {
62
+ console.error(chalk.red(`Webpack process exited with code ${code}`));
63
+ }
64
+ process.exit(code || 0);
65
+ });
66
+ }
67
+ }
68
+ catch (e) {
69
+ console.error(e);
70
+ }
54
71
  // Handle process termination
55
72
  const cleanup = () => {
56
73
  console.log(chalk.yellow('\nShutting down servers...'));
57
74
  webpackProcess.kill();
58
- server.stop().catch(console.error);
75
+ if (serverProcess) {
76
+ serverProcess.kill();
77
+ }
59
78
  };
60
79
  process.on('SIGINT', cleanup);
61
80
  process.on('SIGTERM', cleanup);
@@ -64,7 +83,6 @@ export const devCommand = new Command('dev')
64
83
  if (code !== 0 && code !== null) {
65
84
  console.error(chalk.red(`Webpack process exited with code ${code}`));
66
85
  }
67
- server.stop().catch(console.error);
68
86
  process.exit(code || 0);
69
87
  });
70
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AACpC,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,MAAM,CAAC;KACrE,MAAM,CACL,4BAA4B,EAC5B,wCAAwC,EACxC,MAAM,CACP;KACA,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;KACvD,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,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAExD,gCAAgC;IAChC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,+EAA+E,CAChF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAEpE,wBAAwB;IACxB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,IAAI;QACJ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,OAAO;QACP,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,YAAY,CAAC,QAAQ,EAAE;KACxB,CAAC;IAEF,4BAA4B;IAC5B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,uCAAuC,YAAY,KAAK,CAAC,CACrE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE;QAC/C,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;SAC9B;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACxD,cAAc,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE/B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hello.d.ts","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGlC,eAAO,MAAM,YAAY,SAoCrB,CAAC"}
1
+ {"version":3,"file":"hello.d.ts","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGlC,eAAO,MAAM,YAAY,SAKrB,CAAC"}
@@ -1,36 +1,10 @@
1
- import { Command } from 'commander';
2
1
  import chalk from 'chalk';
2
+ import { Command } from 'commander';
3
+ import { launchTonkGUI } from '../lib/launchGUI.js';
3
4
  export const helloCommand = new Command('hello')
4
- .description('Display a welcome message for Tonk')
5
+ .description('Launch the Tonk HUB')
5
6
  .action(() => {
6
- console.log(`
7
- ・。゜☆。・゜。・。゜☆。・゜★・。゜☆。・゜。・。゜☆。・゜☆。・゜
8
-
9
- _____ U ___ u _ _ _ __
10
- |_ " _| \\/"_ \\/ | \\ |"| |"|/ /
11
- | | | | | |<| \\| |> | ' /
12
- /| |\\.-,_| |_| |U| |\\ |u U/| . \\\\u
13
- u |_|U \\_)-\\___/ |_| \\_| |_|\\_\\
14
- _// \\\\_ \\\\ || \\\\,-.,-,>> \\\\,-.
15
- (__) (__) (__) (_") (_/ \\.) (_/
16
-
17
- ・。゜☆。・゜。・。゜☆。・゜★・。゜☆。・゜。・。゜☆。・゜☆。・゜
18
-
19
- Welcome to Tonk!
20
-
21
- We're excited to work with you in building your own ☆𝐿𝒾𝓉𝓉𝓁𝑒 𝐼𝓃𝓉𝑒𝓇𝓃𝑒𝓉☆.
22
-
23
- To get started...
24
-
25
- 1. Create your first app by running the command: ${chalk.cyan('tonk create [app name]')}
26
- 2. Start the app with: ${chalk.cyan('npm run dev')}
27
- 3. Open in your favorite code editor and vibe.
28
-
29
- You can find more information and how to reach us at ${chalk.blue('https://tonk.xyz')}
30
- Feel free to ask for help in the Telegram chat or just say hello.
31
-
32
- Cheers!
33
- `);
34
- process.exit(0);
7
+ console.log(chalk.blue('Launching Tonk GUI...'));
8
+ launchTonkGUI();
35
9
  });
36
10
  //# sourceMappingURL=hello.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;mDAmBmC,KAAK,CAAC,IAAI,CACvD,wBAAwB,CACzB;yBACoB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;;;uDAGK,KAAK,CAAC,IAAI,CAC3D,kBAAkB,CACnB;;;;CAIJ,CAAC,CAAC;IACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const printMarkdown: Command;
3
+ //# sourceMappingURL=prettyPrint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyPrint.d.ts","sourceRoot":"","sources":["../../src/commands/prettyPrint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAsDlC,eAAO,MAAM,aAAa,SAWtB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { marked } from 'marked';
4
+ import fs from 'fs';
5
+ import path from 'path';
6
+ // Create custom renderer extension
7
+ const renderer = {
8
+ // Block-level renderer methods
9
+ heading(token) {
10
+ const prefix = '#'.repeat(token.depth);
11
+ return chalk.bold.cyan(`\n${prefix} ${this.parser.parseInline(token.tokens)}\n\n`);
12
+ },
13
+ paragraph(token) {
14
+ return `${this.parser.parseInline(token.tokens)}\n\n`;
15
+ },
16
+ list(token) {
17
+ const items = token.items.map((item, index) => chalk.yellow(`${token.ordered ? `${index + 1}.` : '•'} ${this.parser.parseInline(item.tokens)}`));
18
+ return items.join('\n') + '\n';
19
+ },
20
+ code(token) {
21
+ return chalk.greenBright(token.text) + '\n\n';
22
+ },
23
+ codespan(token) {
24
+ return chalk.greenBright(token.text);
25
+ },
26
+ // Inline-level renderer methods
27
+ link(token) {
28
+ return chalk.blue.underline(token.href);
29
+ },
30
+ em(token) {
31
+ return chalk.italic(this.parser.parseInline(token.tokens));
32
+ },
33
+ strong(token) {
34
+ return chalk.bold(this.parser.parseInline(token.tokens));
35
+ },
36
+ };
37
+ // Configure marked with our custom renderer
38
+ marked.use({ renderer });
39
+ export const printMarkdown = new Command('markdown')
40
+ .description('Pretty prints markdown files')
41
+ .argument('[path to markdown file]', 'Path of the markdown file to print')
42
+ .action(markdownPath => {
43
+ // Convert markdown to formatted text
44
+ const contents = fs
45
+ .readFileSync(path.normalize(markdownPath))
46
+ .toString('utf8');
47
+ const formattedMessage = marked.parse(contents);
48
+ console.log(formattedMessage);
49
+ process.exit(0);
50
+ });
51
+ //# sourceMappingURL=prettyPrint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyPrint.js","sourceRoot":"","sources":["../../src/commands/prettyPrint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAS,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,mCAAmC;AACnC,MAAM,QAAQ,GAAG;IACf,+BAA+B;IAC/B,OAAO,CAAqB,KAAqB;QAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CACpB,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAC3D,CAAC;IACJ,CAAC;IACD,SAAS,CAAqB,KAAuB;QACnD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IACxD,CAAC;IACD,IAAI,CAAqB,KAAkB;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5C,KAAK,CAAC,MAAM,CACV,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CACjE,IAAI,CAAC,MAAM,CACZ,EAAE,CACJ,CACF,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,KAAkB;QACrB,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAChD,CAAC;IACD,QAAQ,CAAC,KAAsB;QAC7B,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,gCAAgC;IAChC,IAAI,CAAC,KAAkB;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,EAAE,CAAqB,KAAgB;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,CAAqB,KAAoB;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF,CAAC;AACF,4CAA4C;AAC5C,MAAM,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;AAEvB,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACjD,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;KACzE,MAAM,CAAC,YAAY,CAAC,EAAE;IACrB,qCAAqC;IACrC,MAAM,QAAQ,GAAG,EAAE;SAChB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SAC1C,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AA0BlC,eAAO,MAAM,YAAY,SA2KrB,CAAC"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AA2BlC,eAAO,MAAM,YAAY,SAuQrB,CAAC"}
@@ -9,9 +9,10 @@ function normalizePath(inputPath) {
9
9
  const homedir = process.env.HOME || process.env.USERPROFILE || '/home/node';
10
10
  return path.join(homedir, inputPath.substring(2));
11
11
  }
12
- // If path is an absolute path not in the user's home directory, redirect it
12
+ // If path is an absolute path not in the user's home directory and not already expanded from ~,
13
+ // redirect it to tonk-data
13
14
  if (inputPath.startsWith('/') &&
14
- !inputPath.startsWith('/home/') &&
15
+ !inputPath.startsWith(process.env.HOME || process.env.USERPROFILE || '') &&
15
16
  !inputPath.includes('node_modules')) {
16
17
  const homedir = process.env.HOME || process.env.USERPROFILE || '/home/node';
17
18
  return path.join(homedir, 'tonk-data', inputPath);
@@ -21,30 +22,60 @@ function normalizePath(inputPath) {
21
22
  export const serveCommand = new Command('serve')
22
23
  .description('Start a Tonk app in production mode')
23
24
  .option('-p, --port <port>', 'Port to run the server on', '8080')
24
- .option('-d, --dist <path>', 'Path to the dist directory', 'dist')
25
+ .option('-d, --dist <path>', 'Path to the dist directory for single app mode')
26
+ .option('-u, --userhub', 'Run in userhub mode')
27
+ .option('-f, --filesystem <path>', 'Filesystem path for document storage')
25
28
  .action(async (options) => {
26
29
  const projectRoot = process.cwd();
27
30
  const port = parseInt(options.port, 10);
28
- const distPath = path.isAbsolute(options.dist)
29
- ? options.dist
30
- : path.join(projectRoot, options.dist);
31
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);
32
+ // Determine whether we're using single app mode or hub mode
33
+ let distPath;
34
+ if (options.userhub) {
35
+ if (!options.filesystem) {
36
+ console.error(chalk.red(`Error: cannot run in hub mode without a filesystem path`));
37
+ process.exit(1);
38
+ }
39
+ // do nothing
37
40
  }
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);
41
+ else if (options.dist) {
42
+ // Single app mode: serve a single app from dist
43
+ distPath = path.isAbsolute(options.dist)
44
+ ? options.dist
45
+ : path.join(projectRoot, options.dist);
46
+ // Check if the dist directory exists
47
+ if (!fs.existsSync(distPath)) {
48
+ console.error(chalk.red(`Error: Dist directory not found at ${distPath}. Make sure you've built the project first.`));
49
+ console.log(chalk.yellow(`Tip: Run 'pnpm run build' or 'yarn build' before serving.`));
50
+ process.exit(1);
51
+ }
52
+ // Check if dist/index.html exists
53
+ const indexPath = path.join(distPath, 'index.html');
54
+ if (!fs.existsSync(indexPath)) {
55
+ console.error(chalk.red(`Error: index.html not found in ${distPath}. The build output may be incomplete.`));
56
+ process.exit(1);
57
+ }
58
+ }
59
+ else {
60
+ // Neither hub nor dist specified, default to 'dist' in current directory
61
+ distPath = path.join(projectRoot, 'dist');
62
+ if (!fs.existsSync(distPath)) {
63
+ console.error(chalk.red(`Error: No --dist or --hub option provided, and default dist directory not found at ${distPath}.`));
64
+ process.exit(1);
65
+ }
66
+ // Check if dist/index.html exists
67
+ const indexPath = path.join(distPath, 'index.html');
68
+ if (!fs.existsSync(indexPath)) {
69
+ console.error(chalk.red(`Error: index.html not found in ${distPath}. The build output may be incomplete.`));
70
+ process.exit(1);
71
+ }
43
72
  }
44
73
  // Check for Backblaze and Filesystem configurations
45
74
  let backblazeConfig = null;
46
75
  let filesystemConfig = null;
47
76
  let primaryStorage = null;
77
+ // Check if filesystem path was provided via command line
78
+ const hasFilesystemFlag = !!options.filesystem;
48
79
  if (fs.existsSync(configFilePath)) {
49
80
  try {
50
81
  const configData = JSON.parse(fs.readFileSync(configFilePath, 'utf8'));
@@ -62,7 +93,10 @@ export const serveCommand = new Command('serve')
62
93
  console.log(chalk.blue('Backblaze B2 backup enabled from config'));
63
94
  }
64
95
  // If filesystem storage is configured and enabled in the config file
65
- if (configData.filesystem && configData.filesystem.enabled) {
96
+ // and no command line path was provided
97
+ if (!hasFilesystemFlag &&
98
+ configData.filesystem &&
99
+ configData.filesystem.enabled) {
66
100
  let storagePath = configData.filesystem.storagePath || '~/tonk-data';
67
101
  storagePath = normalizePath(storagePath);
68
102
  filesystemConfig = {
@@ -86,15 +120,33 @@ export const serveCommand = new Command('serve')
86
120
  console.warn(chalk.yellow(`Error details: ${error}`));
87
121
  }
88
122
  }
123
+ // If filesystem path was provided via command line, override config settings
124
+ if (hasFilesystemFlag) {
125
+ const storagePath = normalizePath(options.filesystem);
126
+ filesystemConfig = {
127
+ enabled: true,
128
+ storagePath,
129
+ syncInterval: 30000, // 30 seconds default
130
+ createIfMissing: true, // default to true
131
+ };
132
+ console.log(chalk.blue(`Filesystem storage enabled with path: ${storagePath}`));
133
+ // If no primary storage set and we have backblaze, set filesystem as primary
134
+ if (!primaryStorage && backblazeConfig) {
135
+ primaryStorage = 'filesystem';
136
+ console.log(chalk.blue('Primary storage set to filesystem from command line argument'));
137
+ }
138
+ }
89
139
  console.log(chalk.blue('Starting Tonk production server...'));
90
140
  try {
91
141
  // Start the production server with storage configs if available
92
142
  const serverConfig = {
93
143
  port,
94
144
  mode: 'production',
95
- distPath,
96
145
  verbose: true,
97
146
  };
147
+ if (distPath) {
148
+ serverConfig.distPath = distPath;
149
+ }
98
150
  // Add Backblaze configuration if available
99
151
  if (backblazeConfig) {
100
152
  serverConfig.storage = {
@@ -112,6 +164,9 @@ export const serveCommand = new Command('serve')
112
164
  const server = await createServer(serverConfig);
113
165
  // Log success info
114
166
  console.log(chalk.green(`Server running at http://localhost:${port}`));
167
+ if (distPath) {
168
+ console.log(chalk.green(`Serving single app from: ${distPath}`));
169
+ }
115
170
  if (backblazeConfig) {
116
171
  console.log(chalk.green(`
117
172
  Backblaze B2 backup is enabled for your Automerge documents.
@@ -133,7 +188,18 @@ Primary storage is set to: ${primaryStorage}
133
188
  // Handle process termination
134
189
  const cleanup = () => {
135
190
  console.log(chalk.yellow('\nShutting down server...'));
136
- server.stop().catch(console.error);
191
+ server
192
+ .stop()
193
+ .then(() => {
194
+ console.log(chalk.green('Server shutdown complete.'));
195
+ // Force exit after brief delay to ensure any pending operations complete
196
+ setTimeout(() => process.exit(0), 2000);
197
+ })
198
+ .catch(err => {
199
+ console.error(chalk.red('Error during shutdown:'), err);
200
+ // Force exit even on error
201
+ process.exit(1);
202
+ });
137
203
  };
138
204
  process.on('SIGINT', cleanup);
139
205
  process.on('SIGTERM', cleanup);
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function launchTonkGUI(): void;
2
+ //# sourceMappingURL=launchGUI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchGUI.d.ts","sourceRoot":"","sources":["../../src/lib/launchGUI.ts"],"names":[],"mappings":"AAMA,wBAAgB,aAAa,SAmJ5B"}
@@ -0,0 +1,175 @@
1
+ import chalk from 'chalk';
2
+ import { spawn } from 'child_process';
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ export function launchTonkGUI() {
7
+ // Use import.meta.url and fileURLToPath instead of __dirname
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+ // Determine the paths - CLI is in src/commands, so we need to go up to the project root
11
+ const projectRoot = path.resolve(__dirname, '../../..');
12
+ const electronAppPath = path.resolve(projectRoot, 'hub');
13
+ const hubUIPath = path.resolve(electronAppPath, 'hub-ui');
14
+ // Check if the Electron app exists
15
+ if (!fs.existsSync(electronAppPath)) {
16
+ console.error(chalk.red(`Electron app not found at ${electronAppPath}. Please check your installation.`));
17
+ throw new Error(`Electron app not found at ${electronAppPath}. Please check your installation.`);
18
+ }
19
+ // Check if the hub UI exists
20
+ if (!fs.existsSync(hubUIPath)) {
21
+ console.error(chalk.red(`Hub UI not found at ${hubUIPath}. Please check your installation.`));
22
+ throw new Error(`Hub UI not found at ${hubUIPath}. Please check your installation.`);
23
+ }
24
+ let uiProcess = null;
25
+ let electronProcess = null;
26
+ // Function to cleanly terminate both processes
27
+ const cleanupProcesses = () => {
28
+ console.log(chalk.yellow('\nShutting down Tonk GUI...'));
29
+ if (electronProcess) {
30
+ try {
31
+ electronProcess.kill('SIGTERM');
32
+ electronProcess = null;
33
+ }
34
+ catch (err) {
35
+ console.error(chalk.red(`Error terminating Electron process: ${err.message}`));
36
+ }
37
+ }
38
+ if (uiProcess) {
39
+ try {
40
+ // First try a graceful termination
41
+ uiProcess.kill('SIGTERM');
42
+ // Force kill after a short timeout if still running
43
+ setTimeout(() => {
44
+ if (uiProcess) {
45
+ try {
46
+ // On macOS, we need SIGKILL to ensure termination
47
+ uiProcess.kill('SIGKILL');
48
+ uiProcess = null;
49
+ console.log(chalk.yellow('Force-terminated UI process'));
50
+ }
51
+ catch (killErr) {
52
+ console.error(chalk.red(`Failed to force-kill UI process: ${killErr.message}`));
53
+ }
54
+ }
55
+ }, 1000);
56
+ }
57
+ catch (err) {
58
+ console.error(chalk.red(`Error terminating UI process: ${err.message}`));
59
+ // Try force kill if normal termination failed
60
+ try {
61
+ uiProcess.kill('SIGKILL');
62
+ uiProcess = null;
63
+ }
64
+ catch (killErr) {
65
+ console.error(chalk.red(`Failed to force-kill UI process: ${killErr.message}`));
66
+ }
67
+ }
68
+ }
69
+ // Also try to kill any process that might be using port 3333
70
+ try {
71
+ // For macOS/Linux
72
+ const killCommand = process.platform === 'win32'
73
+ ? spawn('cmd', [
74
+ '/c',
75
+ 'FOR /F "tokens=5" %P IN (\'netstat -ano ^| findstr :3333 ^| findstr LISTENING\') DO taskkill /F /PID %P',
76
+ ])
77
+ : spawn('sh', ['-c', 'lsof -ti:3333 | xargs kill -9']);
78
+ killCommand.on('error', err => {
79
+ console.error(chalk.red(`Failed to kill process on port 3333: ${err.message}`));
80
+ });
81
+ }
82
+ catch (err) {
83
+ console.error(chalk.red(`Error killing process on port 3333: ${err.message}`));
84
+ }
85
+ console.log(chalk.yellow('Tonk GUI shutdown complete.'));
86
+ };
87
+ try {
88
+ // Start the webpack development server for the hub UI
89
+ console.log(chalk.blue('Starting Hub UI development server...'));
90
+ uiProcess = startUIServer(hubUIPath);
91
+ // Give the UI server a moment to start
92
+ setTimeout(() => {
93
+ // Launch the Electron app
94
+ console.log(chalk.blue('Starting Electron app...'));
95
+ electronProcess = startElectronApp(electronAppPath, cleanupProcesses);
96
+ // Handle process termination
97
+ process.on('SIGINT', cleanupProcesses);
98
+ process.on('SIGTERM', cleanupProcesses);
99
+ process.on('exit', cleanupProcesses);
100
+ }, 2000); // Wait 2 seconds before starting Electron
101
+ }
102
+ catch (error) {
103
+ console.error(chalk.red(`Error launching Tonk GUI: ${error.message}`));
104
+ cleanupProcesses();
105
+ throw new Error(`Error launching Tonk GUI: ${error.message}`);
106
+ }
107
+ }
108
+ function startUIServer(hubUIPath) {
109
+ console.log(chalk.blue(`Starting webpack dev server in ${hubUIPath}...`));
110
+ const uiProcess = spawn('pnpm', ['run', 'start'], {
111
+ cwd: hubUIPath,
112
+ stdio: 'pipe',
113
+ shell: true,
114
+ detached: false, // Ensure process is not detached from parent
115
+ });
116
+ uiProcess.stdout.on('data', data => {
117
+ const output = data.toString();
118
+ console.log(chalk.green(output.trim()));
119
+ });
120
+ uiProcess.stderr.on('data', data => {
121
+ const output = data.toString();
122
+ console.error(chalk.yellow(output.trim()));
123
+ });
124
+ uiProcess.on('error', err => {
125
+ console.error(chalk.red(`Failed to start UI server: ${err.message}`));
126
+ });
127
+ uiProcess.on('close', code => {
128
+ if (code !== 0 && code !== null) {
129
+ console.log(chalk.yellow(`UI server exited with code ${code}`));
130
+ }
131
+ });
132
+ return uiProcess;
133
+ }
134
+ function startElectronApp(electronAppPath, cleanupCallback) {
135
+ console.log(chalk.blue(`Starting Electron app in ${electronAppPath}...`));
136
+ // Check if package.json exists in the electron app directory
137
+ const packageJsonPath = path.join(electronAppPath, 'package.json');
138
+ if (!fs.existsSync(packageJsonPath)) {
139
+ console.error(chalk.red(`No package.json found in ${electronAppPath}`));
140
+ throw new Error(`No package.json found in ${electronAppPath}`);
141
+ }
142
+ // Use npm run dev instead of npx electron .
143
+ const electronProcess = spawn('pnpm', ['run', 'dev'], {
144
+ cwd: electronAppPath,
145
+ stdio: 'pipe',
146
+ shell: true,
147
+ env: {
148
+ ...process.env,
149
+ ELECTRON_START_URL: 'http://localhost:3333',
150
+ // Enable Node.js integration in Electron
151
+ NODE_ENV: 'development',
152
+ },
153
+ });
154
+ electronProcess.stdout.on('data', data => {
155
+ const output = data.toString();
156
+ console.log(chalk.blue(output.trim()));
157
+ });
158
+ electronProcess.stderr.on('data', data => {
159
+ const output = data.toString();
160
+ console.error(chalk.red(output.trim()));
161
+ });
162
+ electronProcess.on('error', err => {
163
+ console.error(chalk.red(`Failed to start Electron app: ${err.message}`));
164
+ });
165
+ electronProcess.on('close', code => {
166
+ if (code !== 0 && code !== null) {
167
+ console.log(chalk.yellow(`Electron app exited with code ${code}`));
168
+ }
169
+ console.log(chalk.yellow('Electron app closed, shutting down UI server...'));
170
+ // Call the cleanup function when Electron exits
171
+ cleanupCallback();
172
+ });
173
+ return electronProcess;
174
+ }
175
+ //# sourceMappingURL=launchGUI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchGUI.js","sourceRoot":"","sources":["../../src/lib/launchGUI.ts"],"names":[],"mappings":"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"}
package/dist/tonk.js CHANGED
@@ -1,16 +1,17 @@
1
1
  import { Command } from 'commander';
2
+ import { configCommand } from './commands/config.js';
2
3
  import { createCommand } from './commands/create.js';
3
- import { devCommand } from './commands/dev.js';
4
- import { serveCommand } from './commands/serve.js';
5
4
  import { deployCommand } from './commands/deploy.js';
6
- import { configCommand } from './commands/config.js';
5
+ import { devCommand } from './commands/dev.js';
7
6
  import { helloCommand } from './commands/hello.js';
7
+ import { printMarkdown } from './commands/prettyPrint.js';
8
+ import { serveCommand } from './commands/serve.js';
8
9
  const program = new Command();
9
10
  // Main program setup
10
11
  program
11
12
  .name('tonk')
12
13
  .description('The tonk cli helps you to manage your tonk stack and apps.')
13
- .version('0.1.0')
14
+ .version('0.1.2')
14
15
  .on('--help', () => {
15
16
  console.log('\nWork in progress!');
16
17
  });
@@ -20,10 +21,6 @@ program.addCommand(serveCommand);
20
21
  program.addCommand(deployCommand);
21
22
  program.addCommand(configCommand);
22
23
  program.addCommand(helloCommand);
23
- // Parse arguments
24
+ program.addCommand(printMarkdown);
24
25
  program.parse();
25
- // Show help if no arguments provided
26
- if (!process.argv.slice(2).length) {
27
- program.outputHelp();
28
- }
29
26
  //# sourceMappingURL=tonk.js.map
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,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,qBAAqB;AACrB,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC;KAChB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,qCAAqC;AACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
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,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,qBAAqB;AACrB,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC;KAChB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonk/cli",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
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.1.0",
39
+ "@tonk/server": "^0.1.9",
40
40
  "chalk": "^5.3.0",
41
41
  "commander": "^11.1.0",
42
42
  "dotenv": "^16.4.7",
@@ -45,7 +45,9 @@
45
45
  "fs-extra": "^11.2.0",
46
46
  "gradient-string": "^2.0.2",
47
47
  "inquirer": "^9.2.12",
48
+ "@tonk/keepsync": "^0.3.7",
48
49
  "listr2": "^8.2.5",
50
+ "marked": "^15.0.7",
49
51
  "open": "^10.1.0",
50
52
  "ora": "^7.0.1",
51
53
  "zod": "^3.24.2"