zele 0.3.21 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,17 +11,18 @@
11
11
 
12
12
  Multi-account email and calendar client supporting **Google OAuth** and **IMAP/SMTP** (Fastmail, Outlook, any provider). SQLite cache, YAML output.
13
13
 
14
- Requires [bun](https://bun.sh):
14
+ All CLI commands work with **Node.js** (v18+). The interactive TUI (`zele` with no subcommand) requires [Bun](https://bun.sh) and will auto-spawn it if available.
15
15
 
16
16
  ```bash
17
- # install bun (skip if already installed)
18
- curl -fsSL https://bun.sh/install | bash # macOS/Linux
19
- powershell -c "irm bun.sh/install.ps1|iex" # Windows
17
+ # with npm / npx (CLI commands only, no TUI)
18
+ npm install -g zele
20
19
 
21
- # install zele
20
+ # with bun (full support including TUI)
22
21
  bun install -g zele
23
22
  ```
24
23
 
24
+ > If you install via npm and run `zele` (the TUI), it will try to find `bun` in your PATH and re-spawn automatically. If bun is not installed, you'll get install instructions.
25
+
25
26
  ## Setup
26
27
 
27
28
  ### Google accounts
package/dist/cli.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env bun
1
+ #!/usr/bin/env node
2
2
  export {};
package/dist/cli.js CHANGED
@@ -1,8 +1,13 @@
1
- #!/usr/bin/env bun
1
+ #!/usr/bin/env node
2
2
  // zele — Gmail CLI built on goke.
3
3
  // Entry point: registers all commands, global options, help, and version.
4
4
  // Uses goke for command parsing with zod schemas for type-safe options.
5
+ //
6
+ // Shebang is `node` so all CLI subcommands work without Bun.
7
+ // Only the default TUI command requires Bun (OpenTUI Zig FFI). When
8
+ // invoked under Node, the TUI re-spawns itself with `bun` via spawnSync.
5
9
  import { createRequire } from 'node:module';
10
+ import { fileURLToPath } from 'node:url';
6
11
  import { goke } from 'goke';
7
12
  import { z } from 'zod';
8
13
  import React from 'react';
@@ -23,19 +28,40 @@ const cli = goke('zele').option('--account <account>', z.array(z.string()).descr
23
28
  // Default command (TUI)
24
29
  // ---------------------------------------------------------------------------
25
30
  cli.command('', 'Browse emails in TUI').action(async () => {
26
- if (typeof globalThis.Bun === 'undefined') {
27
- const pc = await import('picocolors');
28
- const isWindows = process.platform === 'win32';
29
- const installCmd = isWindows
30
- ? 'powershell -c "irm bun.sh/install.ps1 | iex"'
31
- : 'curl -fsSL https://bun.sh/install | bash';
32
- console.error(pc.default.red('Error: ') +
33
- 'The TUI requires Bun to run.\n\n' +
34
- 'Install Bun:\n' +
35
- ` ${pc.default.cyan(installCmd)}\n\n` +
36
- 'Then run:\n' +
37
- ` ${pc.default.cyan('zele')}`);
38
- process.exit(1);
31
+ // TODO: Remove bun re-spawn when opentui supports Node.js natively.
32
+ // OpenTUI's Zig renderer requires Bun FFI. When running under Node,
33
+ // re-spawn the same command with bun so the TUI works transparently.
34
+ const isBun = typeof globalThis.Bun !== 'undefined';
35
+ if (!isBun) {
36
+ const { spawnSync } = await import('node:child_process');
37
+ const __filename = fileURLToPath(import.meta.url);
38
+ const result = spawnSync('bun', [__filename, ...process.argv.slice(2)], {
39
+ stdio: 'inherit',
40
+ env: process.env,
41
+ });
42
+ if (result.error) {
43
+ // bun binary not found
44
+ const pc = await import('picocolors');
45
+ const isWindows = process.platform === 'win32';
46
+ const installCmd = isWindows
47
+ ? 'powershell -c "irm bun.sh/install.ps1 | iex"'
48
+ : 'curl -fsSL https://bun.sh/install | bash';
49
+ console.error(pc.default.red('Error: ') +
50
+ 'The TUI requires Bun to run.\n\n' +
51
+ 'Install Bun:\n' +
52
+ ` ${pc.default.cyan(installCmd)}\n\n` +
53
+ 'Then run:\n' +
54
+ ` ${pc.default.cyan('zele')}`);
55
+ process.exit(1);
56
+ }
57
+ // Preserve signal semantics: if the child was killed by a signal,
58
+ // re-raise it so the parent exits with the correct shell status.
59
+ if (result.signal) {
60
+ process.kill(process.pid, result.signal);
61
+ return;
62
+ }
63
+ process.exit(result.status ?? 1);
64
+ return;
39
65
  }
40
66
  const accounts = await listAccounts();
41
67
  if (accounts.length === 0) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/output.js CHANGED
@@ -135,7 +135,6 @@ turndown.addRule('hidden-elements', {
135
135
  export function htmlToMarkdown(html) {
136
136
  // Pre-clean: remove common email noise
137
137
  const cleaned = html
138
- .replace(/<!\-\-[\s\S]*?\-\->/g, '') // HTML comments
139
138
  .replace(/<o:p>[\s\S]*?<\/o:p>/gi, '') // Outlook tags
140
139
  .replace(/<!\[if[\s\S]*?<!\[endif\]>/gi, ''); // Outlook conditional comments
141
140
  let md = turndown.turndown(cleaned);
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zele",
3
- "version": "0.3.21",
3
+ "version": "0.4.0",
4
4
  "description": "Email & Calendar CLI — Gmail, IMAP/SMTP, Google Calendar from your terminal",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",
@@ -27,8 +27,8 @@
27
27
  "@clack/prompts": "^1.2.0",
28
28
  "@googleapis/gmail": "^16.1.1",
29
29
  "@libsql/client": "^0.15.15",
30
- "@opentui/core": "^0.1.88",
31
- "@opentui/react": "^0.1.88",
30
+ "@opentui/core": "^0.2.12",
31
+ "@opentui/react": "^0.2.12",
32
32
  "@prisma/adapter-libsql": "7.3.0",
33
33
  "@prisma/client": "7.3.0",
34
34
  "@termcast/utils": "^2.2.8",
package/src/cli.ts CHANGED
@@ -1,10 +1,15 @@
1
- #!/usr/bin/env bun
1
+ #!/usr/bin/env node
2
2
 
3
3
  // zele — Gmail CLI built on goke.
4
4
  // Entry point: registers all commands, global options, help, and version.
5
5
  // Uses goke for command parsing with zod schemas for type-safe options.
6
+ //
7
+ // Shebang is `node` so all CLI subcommands work without Bun.
8
+ // Only the default TUI command requires Bun (OpenTUI Zig FFI). When
9
+ // invoked under Node, the TUI re-spawns itself with `bun` via spawnSync.
6
10
 
7
11
  import { createRequire } from 'node:module'
12
+ import { fileURLToPath } from 'node:url'
8
13
  import { goke } from 'goke'
9
14
  import { z } from 'zod'
10
15
  import React from 'react'
@@ -32,21 +37,42 @@ const cli: ZeleCli = goke('zele').option(
32
37
  // ---------------------------------------------------------------------------
33
38
 
34
39
  cli.command('', 'Browse emails in TUI').action(async () => {
35
- if (typeof (globalThis as { Bun?: unknown }).Bun === 'undefined') {
36
- const pc = await import('picocolors')
37
- const isWindows = process.platform === 'win32'
38
- const installCmd = isWindows
39
- ? 'powershell -c "irm bun.sh/install.ps1 | iex"'
40
- : 'curl -fsSL https://bun.sh/install | bash'
41
- console.error(
42
- pc.default.red('Error: ') +
43
- 'The TUI requires Bun to run.\n\n' +
44
- 'Install Bun:\n' +
45
- ` ${pc.default.cyan(installCmd)}\n\n` +
46
- 'Then run:\n' +
47
- ` ${pc.default.cyan('zele')}`,
48
- )
49
- process.exit(1)
40
+ // TODO: Remove bun re-spawn when opentui supports Node.js natively.
41
+ // OpenTUI's Zig renderer requires Bun FFI. When running under Node,
42
+ // re-spawn the same command with bun so the TUI works transparently.
43
+ const isBun = typeof (globalThis as { Bun?: unknown }).Bun !== 'undefined'
44
+ if (!isBun) {
45
+ const { spawnSync } = await import('node:child_process')
46
+ const __filename = fileURLToPath(import.meta.url)
47
+ const result = spawnSync('bun', [__filename, ...process.argv.slice(2)], {
48
+ stdio: 'inherit',
49
+ env: process.env,
50
+ })
51
+ if (result.error) {
52
+ // bun binary not found
53
+ const pc = await import('picocolors')
54
+ const isWindows = process.platform === 'win32'
55
+ const installCmd = isWindows
56
+ ? 'powershell -c "irm bun.sh/install.ps1 | iex"'
57
+ : 'curl -fsSL https://bun.sh/install | bash'
58
+ console.error(
59
+ pc.default.red('Error: ') +
60
+ 'The TUI requires Bun to run.\n\n' +
61
+ 'Install Bun:\n' +
62
+ ` ${pc.default.cyan(installCmd)}\n\n` +
63
+ 'Then run:\n' +
64
+ ` ${pc.default.cyan('zele')}`,
65
+ )
66
+ process.exit(1)
67
+ }
68
+ // Preserve signal semantics: if the child was killed by a signal,
69
+ // re-raise it so the parent exits with the correct shell status.
70
+ if (result.signal) {
71
+ process.kill(process.pid, result.signal)
72
+ return
73
+ }
74
+ process.exit(result.status ?? 1)
75
+ return
50
76
  }
51
77
 
52
78
  const accounts = await listAccounts()
package/src/output.ts CHANGED
@@ -140,7 +140,6 @@ turndown.addRule('hidden-elements', {
140
140
  export function htmlToMarkdown(html: string): string {
141
141
  // Pre-clean: remove common email noise
142
142
  const cleaned = html
143
- .replace(/<!\-\-[\s\S]*?\-\->/g, '') // HTML comments
144
143
  .replace(/<o:p>[\s\S]*?<\/o:p>/gi, '') // Outlook tags
145
144
  .replace(/<!\[if[\s\S]*?<!\[endif\]>/gi, '') // Outlook conditional comments
146
145