zele 0.3.0 → 0.3.6

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 (157) hide show
  1. package/README.md +1 -1
  2. package/bin/zele +27 -0
  3. package/dist/api-utils.d.ts +51 -2
  4. package/dist/api-utils.js +89 -3
  5. package/dist/api-utils.js.map +1 -1
  6. package/dist/auth.d.ts +27 -6
  7. package/dist/auth.js +185 -129
  8. package/dist/auth.js.map +1 -1
  9. package/dist/calendar-client.d.ts +16 -9
  10. package/dist/calendar-client.js +163 -59
  11. package/dist/calendar-client.js.map +1 -1
  12. package/dist/cli.js +34 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/attachment.js +17 -15
  15. package/dist/commands/attachment.js.map +1 -1
  16. package/dist/commands/auth-cmd.js +20 -9
  17. package/dist/commands/auth-cmd.js.map +1 -1
  18. package/dist/commands/calendar.js +67 -78
  19. package/dist/commands/calendar.js.map +1 -1
  20. package/dist/commands/draft.js +25 -18
  21. package/dist/commands/draft.js.map +1 -1
  22. package/dist/commands/label.js +33 -45
  23. package/dist/commands/label.js.map +1 -1
  24. package/dist/commands/mail-actions.js +11 -13
  25. package/dist/commands/mail-actions.js.map +1 -1
  26. package/dist/commands/mail.js +119 -127
  27. package/dist/commands/mail.js.map +1 -1
  28. package/dist/commands/profile.js +18 -21
  29. package/dist/commands/profile.js.map +1 -1
  30. package/dist/commands/watch.js +33 -261
  31. package/dist/commands/watch.js.map +1 -1
  32. package/dist/db.js +12 -13
  33. package/dist/db.js.map +1 -1
  34. package/dist/generated/browser.d.ts +12 -27
  35. package/dist/generated/client.d.ts +13 -28
  36. package/dist/generated/client.js +1 -1
  37. package/dist/generated/commonInputTypes.d.ts +90 -26
  38. package/dist/generated/enums.d.ts +0 -4
  39. package/dist/generated/enums.js +0 -3
  40. package/dist/generated/enums.js.map +1 -1
  41. package/dist/generated/internal/class.d.ts +22 -55
  42. package/dist/generated/internal/class.js +12 -4
  43. package/dist/generated/internal/class.js.map +1 -1
  44. package/dist/generated/internal/prismaNamespace.d.ts +272 -511
  45. package/dist/generated/internal/prismaNamespace.js +54 -66
  46. package/dist/generated/internal/prismaNamespace.js.map +1 -1
  47. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +60 -74
  48. package/dist/generated/internal/prismaNamespaceBrowser.js +50 -62
  49. package/dist/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  50. package/dist/generated/models/Account.d.ts +1637 -0
  51. package/dist/generated/models/Account.js +2 -0
  52. package/dist/generated/models/Account.js.map +1 -0
  53. package/dist/generated/models/CalendarList.d.ts +1161 -0
  54. package/dist/generated/models/CalendarList.js +2 -0
  55. package/dist/generated/models/CalendarList.js.map +1 -0
  56. package/dist/generated/models/Label.d.ts +1161 -0
  57. package/dist/generated/models/Label.js +2 -0
  58. package/dist/generated/models/Label.js.map +1 -0
  59. package/dist/generated/models/Profile.d.ts +1269 -0
  60. package/dist/generated/models/Profile.js +2 -0
  61. package/dist/generated/models/Profile.js.map +1 -0
  62. package/dist/generated/models/SyncState.d.ts +1130 -0
  63. package/dist/generated/models/SyncState.js +2 -0
  64. package/dist/generated/models/SyncState.js.map +1 -0
  65. package/dist/generated/models/Thread.d.ts +1608 -0
  66. package/dist/generated/models/Thread.js +2 -0
  67. package/dist/generated/models/Thread.js.map +1 -0
  68. package/dist/generated/models.d.ts +6 -9
  69. package/dist/gmail-client.d.ts +119 -94
  70. package/dist/gmail-client.js +862 -322
  71. package/dist/gmail-client.js.map +1 -1
  72. package/dist/mail-tui.d.ts +1 -0
  73. package/dist/mail-tui.js +517 -0
  74. package/dist/mail-tui.js.map +1 -0
  75. package/dist/output.d.ts +6 -0
  76. package/dist/output.js +124 -11
  77. package/dist/output.js.map +1 -1
  78. package/package.json +39 -11
  79. package/schema.prisma +81 -113
  80. package/src/api-utils.ts +103 -5
  81. package/src/auth.ts +224 -143
  82. package/src/calendar-client.ts +196 -89
  83. package/src/cli.ts +39 -1
  84. package/src/commands/attachment.ts +18 -19
  85. package/src/commands/auth-cmd.ts +19 -9
  86. package/src/commands/calendar.ts +42 -85
  87. package/src/commands/draft.ts +19 -22
  88. package/src/commands/label.ts +21 -57
  89. package/src/commands/mail-actions.ts +11 -19
  90. package/src/commands/mail.ts +109 -148
  91. package/src/commands/profile.ts +12 -28
  92. package/src/commands/watch.ts +37 -304
  93. package/src/db.ts +13 -16
  94. package/src/generated/browser.ts +49 -0
  95. package/src/generated/client.ts +71 -0
  96. package/src/generated/commonInputTypes.ts +332 -0
  97. package/src/generated/enums.ts +17 -0
  98. package/src/generated/internal/class.ts +250 -0
  99. package/src/generated/internal/prismaNamespace.ts +1198 -0
  100. package/src/generated/internal/prismaNamespaceBrowser.ts +169 -0
  101. package/src/generated/models/Account.ts +1848 -0
  102. package/src/generated/models/CalendarList.ts +1331 -0
  103. package/src/generated/models/Label.ts +1331 -0
  104. package/src/generated/models/Profile.ts +1439 -0
  105. package/src/generated/models/SyncState.ts +1300 -0
  106. package/src/generated/models/Thread.ts +1787 -0
  107. package/src/generated/models.ts +17 -0
  108. package/src/gmail-client.test.ts +59 -0
  109. package/src/gmail-client.ts +1034 -429
  110. package/src/mail-tui.tsx +1061 -0
  111. package/src/output.test.ts +1093 -0
  112. package/src/output.ts +128 -13
  113. package/src/schema.sql +58 -68
  114. package/src/test-fixtures/email-html/safe-claude-event.html +28 -0
  115. package/src/test-fixtures/email-html/safe-product-announcement.html +25 -0
  116. package/src/test-fixtures/email-html/safe-tracked-links.html +27 -0
  117. package/src/test-fixtures/email-html-snapshots/safe-claude-event.html.md +9 -0
  118. package/src/test-fixtures/email-html-snapshots/safe-product-announcement.html.md +13 -0
  119. package/src/test-fixtures/email-html-snapshots/safe-tracked-links.html.md +7 -0
  120. package/AGENTS.md +0 -26
  121. package/CHANGELOG.md +0 -43
  122. package/dist/generated/models/accounts.d.ts +0 -2000
  123. package/dist/generated/models/accounts.js +0 -2
  124. package/dist/generated/models/accounts.js.map +0 -1
  125. package/dist/generated/models/calendar_events.d.ts +0 -1433
  126. package/dist/generated/models/calendar_events.js +0 -2
  127. package/dist/generated/models/calendar_events.js.map +0 -1
  128. package/dist/generated/models/calendar_lists.d.ts +0 -1131
  129. package/dist/generated/models/calendar_lists.js +0 -2
  130. package/dist/generated/models/calendar_lists.js.map +0 -1
  131. package/dist/generated/models/label_counts.d.ts +0 -1131
  132. package/dist/generated/models/label_counts.js +0 -2
  133. package/dist/generated/models/label_counts.js.map +0 -1
  134. package/dist/generated/models/labels.d.ts +0 -1131
  135. package/dist/generated/models/labels.js +0 -2
  136. package/dist/generated/models/labels.js.map +0 -1
  137. package/dist/generated/models/profiles.d.ts +0 -1131
  138. package/dist/generated/models/profiles.js +0 -2
  139. package/dist/generated/models/profiles.js.map +0 -1
  140. package/dist/generated/models/sync_states.d.ts +0 -1107
  141. package/dist/generated/models/sync_states.js +0 -2
  142. package/dist/generated/models/sync_states.js.map +0 -1
  143. package/dist/generated/models/thread_lists.d.ts +0 -1404
  144. package/dist/generated/models/thread_lists.js +0 -2
  145. package/dist/generated/models/thread_lists.js.map +0 -1
  146. package/dist/generated/models/threads.d.ts +0 -1247
  147. package/dist/generated/models/threads.js +0 -2
  148. package/dist/generated/models/threads.js.map +0 -1
  149. package/dist/gmail-cache.d.ts +0 -60
  150. package/dist/gmail-cache.js +0 -264
  151. package/dist/gmail-cache.js.map +0 -1
  152. package/docs/gogcli-gmail-implementation.md +0 -599
  153. package/scripts/test-device-code-clients.ts +0 -186
  154. package/scripts/test-micropython-scopes.ts +0 -72
  155. package/scripts/test-oauth-clients.ts +0 -257
  156. package/src/gmail-cache.ts +0 -339
  157. package/tsconfig.json +0 -16
@@ -1,17 +1,35 @@
1
1
  // Mail commands: list, search, read, send, reply, forward.
2
- // Core email operations wrapping GmailClient with cache-first reads
3
- // and YAML output for list views.
2
+ // Core email operations wrapping GmailClient with YAML output for list views.
3
+ // Cache is handled by the client — commands just call methods and use data.
4
4
  // Multi-account: list/search fetch all accounts concurrently and merge by date.
5
5
  import { z } from 'zod';
6
6
  import fs from 'node:fs';
7
- import { getClients, getClient } from '../auth.js';
8
- import * as cache from '../gmail-cache.js';
7
+ import React from 'react';
8
+ import { getClients, getClient, listAccounts, login } from '../auth.js';
9
+ import { AuthError } from '../api-utils.js';
9
10
  import * as out from '../output.js';
11
+ import { handleCommandError } from '../output.js';
10
12
  import pc from 'picocolors';
11
13
  // ---------------------------------------------------------------------------
12
14
  // Register commands
13
15
  // ---------------------------------------------------------------------------
14
16
  export function registerMailCommands(cli) {
17
+ // =========================================================================
18
+ // mail (TUI)
19
+ // =========================================================================
20
+ cli
21
+ .command('mail', 'Browse emails in TUI')
22
+ .action(async () => {
23
+ const accounts = await listAccounts();
24
+ if (accounts.length === 0) {
25
+ const result = await login();
26
+ if (result instanceof Error)
27
+ handleCommandError(result);
28
+ }
29
+ const { renderWithProviders } = await import('termcast');
30
+ const { default: Command } = await import('../mail-tui.js');
31
+ await renderWithProviders(React.createElement(Command));
32
+ });
15
33
  // =========================================================================
16
34
  // mail list
17
35
  // =========================================================================
@@ -21,7 +39,6 @@ export function registerMailCommands(cli) {
21
39
  .option('--max [max]', 'Max results per page (default: 20)')
22
40
  .option('--page <page>', 'Pagination token')
23
41
  .option('--label <label>', 'Filter by label name')
24
- .option('--no-cache', 'Skip cache')
25
42
  .action(async (options) => {
26
43
  const folder = options.folder ?? 'inbox';
27
44
  const max = options.max ? Number(options.max) : 20;
@@ -30,40 +47,29 @@ export function registerMailCommands(cli) {
30
47
  out.error('--page cannot be used with multiple accounts (page tokens are per-account)');
31
48
  process.exit(1);
32
49
  }
33
- const cacheParams = {
34
- folder,
35
- maxResults: max,
36
- labelIds: options.label ? [options.label] : undefined,
37
- pageToken: options.page,
38
- };
39
- // Fetch from all accounts concurrently, tolerating individual failures
40
- const settled = await Promise.allSettled(clients.map(async ({ email, client }) => {
41
- if (!options.noCache) {
42
- const cached = await cache.getCachedThreadList(email, cacheParams);
43
- if (cached) {
44
- return { email, result: cached };
45
- }
46
- }
50
+ // Fetch from all accounts concurrently
51
+ const results = await Promise.all(clients.map(async ({ email, client }) => {
47
52
  const result = await client.listThreads({
48
53
  folder,
49
54
  maxResults: max,
50
55
  labelIds: options.label ? [options.label] : undefined,
51
56
  pageToken: options.page,
52
57
  });
53
- if (!options.noCache) {
54
- await cache.cacheThreadList(email, cacheParams, result);
55
- }
58
+ if (result instanceof Error)
59
+ return result;
56
60
  return { email, result };
57
61
  }));
58
- const allResults = settled
59
- .filter((r) => {
60
- if (r.status === 'rejected') {
61
- out.error(`Failed to fetch: ${r.reason}`);
62
+ const allResults = results.filter((r) => {
63
+ if (r instanceof AuthError) {
64
+ out.error(`${r.message}. Try: zele login`);
65
+ return false;
66
+ }
67
+ if (r instanceof Error) {
68
+ out.error(`Failed to fetch: ${r.message}`);
62
69
  return false;
63
70
  }
64
71
  return true;
65
- })
66
- .map((r) => r.value);
72
+ });
67
73
  // Merge threads from all accounts, sorted by date descending, capped at max
68
74
  const merged = allResults
69
75
  .flatMap(({ email, result }) => result.threads.map((t) => ({ ...t, account: email })))
@@ -76,6 +82,7 @@ export function registerMailCommands(cli) {
76
82
  const showAccount = clients.length > 1;
77
83
  out.printList(merged.map((t) => ({
78
84
  ...(showAccount ? { account: t.account } : {}),
85
+ id: t.id,
79
86
  flags: out.formatFlags(t),
80
87
  from: out.formatSender(t.from),
81
88
  subject: t.subject,
@@ -98,24 +105,28 @@ export function registerMailCommands(cli) {
98
105
  out.error('--page cannot be used with multiple accounts (page tokens are per-account)');
99
106
  process.exit(1);
100
107
  }
101
- // Search all accounts concurrently, tolerating individual failures
102
- const settled = await Promise.allSettled(clients.map(async ({ email, client }) => {
108
+ // Search all accounts concurrently
109
+ const results = await Promise.all(clients.map(async ({ email, client }) => {
103
110
  const result = await client.listThreads({
104
111
  query,
105
112
  maxResults: max,
106
113
  pageToken: options.page,
107
114
  });
115
+ if (result instanceof Error)
116
+ return result;
108
117
  return { email, result };
109
118
  }));
110
- const allResults = settled
111
- .filter((r) => {
112
- if (r.status === 'rejected') {
113
- out.error(`Failed to search: ${r.reason}`);
119
+ const allResults = results.filter((r) => {
120
+ if (r instanceof AuthError) {
121
+ out.error(`${r.message}. Try: zele login`);
122
+ return false;
123
+ }
124
+ if (r instanceof Error) {
125
+ out.error(`Failed to search: ${r.message}`);
114
126
  return false;
115
127
  }
116
128
  return true;
117
- })
118
- .map((r) => r.value);
129
+ });
119
130
  const merged = allResults
120
131
  .flatMap(({ email, result }) => result.threads.map((t) => ({ ...t, account: email })))
121
132
  .sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime())
@@ -127,6 +138,7 @@ export function registerMailCommands(cli) {
127
138
  const showAccount = clients.length > 1;
128
139
  out.printList(merged.map((t) => ({
129
140
  ...(showAccount ? { account: t.account } : {}),
141
+ id: t.id,
130
142
  flags: out.formatFlags(t),
131
143
  from: out.formatSender(t.from),
132
144
  subject: t.subject,
@@ -141,56 +153,84 @@ export function registerMailCommands(cli) {
141
153
  cli
142
154
  .command('mail read <threadId>', 'Read a full email thread')
143
155
  .option('--raw', 'Show raw message (first message only)')
144
- .option('--no-cache', 'Skip cache')
156
+ .option('--raw-html', 'Show raw HTML body per message (no markdown conversion)')
145
157
  .action(async (threadId, options) => {
146
- const { email, client } = await getClient(options.account);
158
+ const { client } = await getClient(options.account);
159
+ if (options.raw && options.rawHtml) {
160
+ out.error('--raw and --raw-html cannot be used together');
161
+ process.exit(1);
162
+ }
147
163
  if (options.raw) {
148
- const thread = await client.getThread({ threadId });
164
+ const { parsed: thread } = await client.getThread({ threadId });
149
165
  if (thread.messages.length === 0) {
150
166
  out.hint('No messages in thread');
151
167
  return;
152
168
  }
153
169
  const rawMsg = await client.getRawMessage({ messageId: thread.messages[0].id });
154
- process.stdout.write(rawMsg + '\n');
170
+ if (rawMsg instanceof Error)
171
+ handleCommandError(rawMsg);
172
+ console.log(rawMsg);
155
173
  return;
156
174
  }
157
- // Cache-first read
158
- let thread;
159
- if (!options.noCache) {
160
- thread = await cache.getCachedThread(email, threadId);
161
- }
162
- if (!thread) {
163
- thread = await client.getThread({ threadId });
164
- if (!options.noCache) {
165
- await cache.cacheThread(email, threadId, thread);
166
- }
167
- }
175
+ const { parsed: thread } = await client.getThread({ threadId });
168
176
  if (thread.messages.length === 0) {
169
177
  out.hint('No messages in thread');
170
178
  return;
171
179
  }
180
+ if (options.rawHtml) {
181
+ thread.messages.forEach((msg, index) => {
182
+ console.log(msg.body);
183
+ if (index < thread.messages.length - 1) {
184
+ console.log('\n<!-- ZELE_MESSAGE_SEPARATOR -->\n');
185
+ }
186
+ });
187
+ return;
188
+ }
189
+ const w = Math.min(process.stdout.columns || 72, 72);
190
+ const rule = pc.dim('─'.repeat(w));
172
191
  // Render thread header
173
- process.stdout.write(pc.bold(thread.subject) + '\n');
174
- process.stdout.write(pc.dim(`Thread ID: ${thread.id} | ${thread.messageCount} message(s)`) + '\n');
175
- process.stdout.write(pc.dim('─'.repeat(60)) + '\n\n');
192
+ console.log(pc.bold(thread.subject));
193
+ // Collect unique participants
194
+ const participants = new Map();
195
+ for (const msg of thread.messages) {
196
+ participants.set(msg.from.email, msg.from.name || msg.from.email);
197
+ for (const r of msg.to)
198
+ participants.set(r.email, r.name || r.email);
199
+ }
200
+ const participantStr = [...participants.values()].join(', ');
201
+ console.log(pc.dim(`${thread.messageCount} message(s) · ${participantStr}`));
202
+ console.log(pc.dim(`ID: ${thread.id}`));
203
+ console.log(rule + '\n');
176
204
  // Render each message
177
205
  for (const msg of thread.messages) {
178
206
  const fromStr = out.formatSender(msg.from);
179
207
  const dateStr = out.formatDate(msg.date);
180
- const flags = out.formatFlags(msg);
181
- process.stdout.write(pc.bold(fromStr) + (flags ? ` ${flags}` : '') + '\n');
182
- process.stdout.write(pc.dim(`To: ${msg.to.map((t) => t.email).join(', ')}`) + '\n');
208
+ // Flags as dim tags
209
+ const flagParts = [];
210
+ if (msg.unread)
211
+ flagParts.push(pc.yellow('[unread]'));
212
+ if (msg.starred)
213
+ flagParts.push(pc.yellow('[starred]'));
214
+ const flagStr = flagParts.length > 0 ? ' ' + flagParts.join(' ') : '';
215
+ console.log(pc.bold(`From: `) + fromStr + flagStr);
216
+ console.log(pc.dim(` To: ${msg.to.map((t) => t.email).join(', ')}`));
183
217
  if (msg.cc && msg.cc.length > 0) {
184
- process.stdout.write(pc.dim(`Cc: ${msg.cc.map((c) => c.email).join(', ')}`) + '\n');
218
+ console.log(pc.dim(` Cc: ${msg.cc.map((c) => c.email).join(', ')}`));
185
219
  }
186
- process.stdout.write(pc.dim(`Date: ${dateStr} | ID: ${msg.id}`) + '\n');
220
+ console.log(pc.dim(`Date: ${dateStr}`));
187
221
  if (msg.attachments.length > 0) {
188
- process.stdout.write(pc.dim(`Attachments: ${msg.attachments.map((a) => a.filename).join(', ')}`) + '\n');
222
+ const attList = msg.attachments.map((a) => {
223
+ const size = a.size < 1024 ? `${a.size} B`
224
+ : a.size < 1048576 ? `${(a.size / 1024).toFixed(1)} KB`
225
+ : `${(a.size / 1048576).toFixed(1)} MB`;
226
+ return `${a.filename} (${size})`;
227
+ });
228
+ console.log(pc.dim(`Attachments: ${attList.join(', ')}`));
189
229
  }
190
- process.stdout.write('\n');
230
+ console.log();
191
231
  const body = out.renderEmailBody(msg.body, msg.mimeType);
192
- process.stdout.write(body + '\n');
193
- process.stdout.write('\n' + pc.dim('─'.repeat(60)) + '\n\n');
232
+ console.log(body);
233
+ console.log('\n' + rule + '\n');
194
234
  }
195
235
  });
196
236
  // =========================================================================
@@ -232,7 +272,7 @@ export function registerMailCommands(cli) {
232
272
  process.exit(1);
233
273
  }
234
274
  const parseEmails = (str) => str.split(',').map((e) => e.trim()).filter(Boolean).map((email) => ({ email }));
235
- const { email, client } = await getClient(options.account);
275
+ const { client } = await getClient(options.account);
236
276
  const result = await client.sendMessage({
237
277
  to: parseEmails(options.to),
238
278
  subject: options.subject,
@@ -241,7 +281,6 @@ export function registerMailCommands(cli) {
241
281
  bcc: options.bcc ? parseEmails(options.bcc) : undefined,
242
282
  fromEmail: options.from,
243
283
  });
244
- await cache.invalidateThreadLists(email);
245
284
  out.printYaml(result);
246
285
  out.success(`Sent to ${options.to}`);
247
286
  });
@@ -256,13 +295,6 @@ export function registerMailCommands(cli) {
256
295
  .option('--all', 'Reply all (include all original recipients)')
257
296
  .option('--from <from>', z.string().describe('Send-as alias email'))
258
297
  .action(async (threadId, options) => {
259
- const { email, client } = await getClient(options.account);
260
- const thread = await client.getThread({ threadId });
261
- if (thread.messages.length === 0) {
262
- out.error('No messages in thread');
263
- process.exit(1);
264
- }
265
- const lastMsg = thread.messages[thread.messages.length - 1];
266
298
  let body = options.body ?? '';
267
299
  if (options.bodyFile) {
268
300
  if (options.bodyFile === '-') {
@@ -280,42 +312,19 @@ export function registerMailCommands(cli) {
280
312
  out.error('--body or --body-file is required');
281
313
  process.exit(1);
282
314
  }
283
- const replyTo = lastMsg.replyTo ?? lastMsg.from.email;
284
- const to = [{ email: replyTo }];
285
- let cc;
286
- if (options.all) {
287
- const profile = await client.getProfile();
288
- const myEmail = profile.emailAddress.toLowerCase();
289
- const allRecipients = [
290
- ...lastMsg.to.map((r) => r.email),
291
- ...(lastMsg.cc?.map((r) => r.email) ?? []),
292
- ]
293
- .filter((e) => e.toLowerCase() !== myEmail)
294
- .filter((e) => e.toLowerCase() !== replyTo.toLowerCase());
295
- if (allRecipients.length > 0) {
296
- cc = allRecipients.map((e) => ({ email: e }));
297
- }
298
- }
299
- if (options.cc) {
300
- const extra = options.cc
301
- .split(',')
302
- .map((e) => ({ email: e.trim() }))
303
- .filter((e) => e.email);
304
- cc = [...(cc ?? []), ...extra];
305
- }
306
- const refs = [lastMsg.references, lastMsg.messageId].filter(Boolean).join(' ');
307
- const result = await client.sendMessage({
308
- to,
309
- subject: lastMsg.subject.startsWith('Re:') ? lastMsg.subject : `Re: ${lastMsg.subject}`,
315
+ const { client } = await getClient(options.account);
316
+ const cc = options.cc
317
+ ? options.cc.split(',').map((e) => ({ email: e.trim() })).filter((e) => e.email)
318
+ : undefined;
319
+ const result = await client.replyToThread({
320
+ threadId,
310
321
  body,
322
+ replyAll: options.all,
311
323
  cc,
312
- threadId,
313
- inReplyTo: lastMsg.messageId,
314
- references: refs || undefined,
315
324
  fromEmail: options.from,
316
325
  });
317
- await cache.invalidateThread(email, threadId);
318
- await cache.invalidateThreadLists(email);
326
+ if (result instanceof Error)
327
+ handleCommandError(result);
319
328
  out.printYaml(result);
320
329
  out.success('Reply sent');
321
330
  });
@@ -332,36 +341,19 @@ export function registerMailCommands(cli) {
332
341
  out.error('--to is required');
333
342
  process.exit(1);
334
343
  }
335
- const { email, client } = await getClient(options.account);
336
- const thread = await client.getThread({ threadId });
337
- if (thread.messages.length === 0) {
338
- out.error('No messages in thread');
339
- process.exit(1);
340
- }
341
- const lastMsg = thread.messages[thread.messages.length - 1];
342
- const forwardedBody = out.renderEmailBody(lastMsg.body, lastMsg.mimeType);
343
- const fullBody = [
344
- options.body ?? '',
345
- '',
346
- '---------- Forwarded message ----------',
347
- `From: ${out.formatSender(lastMsg.from)}`,
348
- `Date: ${lastMsg.date}`,
349
- `Subject: ${lastMsg.subject}`,
350
- `To: ${lastMsg.to.map((t) => t.email).join(', ')}`,
351
- '',
352
- forwardedBody,
353
- ].join('\n');
354
344
  const recipients = options.to
355
345
  .split(',')
356
346
  .map((e) => ({ email: e.trim() }))
357
347
  .filter((e) => e.email);
358
- const result = await client.sendMessage({
348
+ const { client } = await getClient(options.account);
349
+ const result = await client.forwardThread({
350
+ threadId,
359
351
  to: recipients,
360
- subject: `Fwd: ${lastMsg.subject}`,
361
- body: fullBody,
352
+ body: options.body,
362
353
  fromEmail: options.from,
363
354
  });
364
- await cache.invalidateThreadLists(email);
355
+ if (result instanceof Error)
356
+ handleCommandError(result);
365
357
  out.printYaml(result);
366
358
  out.success(`Forwarded to ${options.to}`);
367
359
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/commands/mail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/commands/mail.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,37 @@
1
1
  // Profile command: show account info.
2
2
  // Displays email address, message/thread counts, and aliases as YAML.
3
+ // Cache is handled by the client — commands just call methods and use data.
3
4
  // Multi-account: shows all accounts or filtered by --account.
4
5
  import { getClients } from '../auth.js';
5
- import * as cache from '../gmail-cache.js';
6
+ import { AuthError } from '../api-utils.js';
6
7
  import * as out from '../output.js';
7
8
  export function registerProfileCommands(cli) {
8
9
  cli
9
10
  .command('profile', 'Show Gmail account info')
10
- .option('--no-cache', 'Skip cache')
11
11
  .action(async (options) => {
12
12
  const clients = await getClients(options.account);
13
- // Fetch all accounts concurrently, tolerating individual failures
14
- const settled = await Promise.allSettled(clients.map(async ({ email, client }) => {
15
- let profile;
16
- if (!options.noCache) {
17
- profile = await cache.getCachedProfile(email);
18
- }
19
- if (!profile) {
20
- profile = await client.getProfile();
21
- if (!options.noCache) {
22
- await cache.cacheProfile(email, profile);
23
- }
24
- }
13
+ // Fetch all accounts concurrently
14
+ const allResults = await Promise.all(clients.map(async ({ client }) => {
15
+ const profile = await client.getProfile();
16
+ if (profile instanceof Error)
17
+ return profile;
25
18
  // Always fetch aliases fresh
26
19
  const aliases = await client.getEmailAliases();
27
- return { email, profile, aliases };
20
+ if (aliases instanceof Error)
21
+ return aliases;
22
+ return { profile, aliases };
28
23
  }));
29
- const results = settled
30
- .filter((r) => {
31
- if (r.status === 'rejected') {
32
- out.error(`Failed to fetch profile: ${r.reason}`);
24
+ const results = allResults.filter((r) => {
25
+ if (r instanceof AuthError) {
26
+ out.error(`${r.message}. Try: zele login`);
27
+ return false;
28
+ }
29
+ if (r instanceof Error) {
30
+ out.error(`Failed to fetch profile: ${r.message}`);
33
31
  return false;
34
32
  }
35
33
  return true;
36
- })
37
- .map((r) => r.value);
34
+ });
38
35
  for (const { profile, aliases } of results) {
39
36
  out.printYaml({
40
37
  email: profile.emailAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sEAAsE;AACtE,8DAA8D;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAEnC,MAAM,UAAU,uBAAuB,CAAC,GAAS;IAC/C,GAAG;SACA,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAIjD,kEAAkE;QAClE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YACtC,IAAI,OAA4B,CAAA;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAU,KAAK,CAAC,CAAA;YACxD,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;gBACnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACrB,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAA;YAE9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;QACpC,CAAC,CAAC,CACH,CAAA;QAED,MAAM,OAAO,GAAG,OAAO;aACpB,MAAM,CAAC,CAAC,CAAC,EAAkI,EAAE;YAC5I,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC5B,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBACjD,OAAO,KAAK,CAAA;YACd,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEtB,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC;gBACZ,KAAK,EAAE,OAAO,CAAC,YAAY;gBAC3B,cAAc,EAAE,OAAO,CAAC,aAAa;gBACrC,aAAa,EAAE,OAAO,CAAC,YAAY;gBACnC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;oBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;aACJ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sEAAsE;AACtE,4EAA4E;AAC5E,8DAA8D;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAEnC,MAAM,UAAU,uBAAuB,CAAC,GAAS;IAC/C,GAAG;SACA,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEjD,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;YACzC,IAAI,OAAO,YAAY,KAAK;gBAAE,OAAO,OAAO,CAAA;YAC5C,6BAA6B;YAC7B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAA;YAC9C,IAAI,OAAO,YAAY,KAAK;gBAAE,OAAO,OAAO,CAAA;YAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;QAC7B,CAAC,CAAC,CACH,CAAA;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAiC,EAAE;YACnE,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;gBAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAA;YAAC,CAAC;YACxF,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAAC,OAAO,KAAK,CAAA;YAAC,CAAC;YAC5F,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QAEJ,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC;gBACZ,KAAK,EAAE,OAAO,CAAC,YAAY;gBAC3B,cAAc,EAAE,OAAO,CAAC,aAAa;gBACrC,aAAa,EAAE,OAAO,CAAC,YAAY;gBACnC,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;oBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;aACJ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}