@smcllns/gmail 0.6.0 → 0.8.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,8 +11,9 @@ bunx @smcllns/gmail search "in:inbox is:unread" --max 10
11
11
  This is a fork of the excellent [@mariozechner/gmcli](https://github.com/badlogic/gmcli). The original requests full Gmail permissions (`mail.google.com`), and I wanted to restrict capabilities to prevent agents from accidentally sending or deleting email. The intent is to let agents run autonomously to understand and manage the inbox, while requiring a human to make any one-way door decisions.
12
12
 
13
13
  1. **Restricted OAuth scopes** - The original uses `mail.google.com` (full access). This fork requests only:
14
- - `gmail.modify` - to read messages, threads, and change labels
14
+ - `gmail.modify` (restricted) - required to add/remove labels and archive
15
15
  - `gmail.labels` - to create and edit labels
16
+ - Optional dry-run mode uses `gmail.readonly` for read-only access
16
17
 
17
18
  2. **Dangerous operations blocked in CLI** - Even where OAuth scopes allow, the CLI blocks:
18
19
  - `send` and `delete` commands are disabled
@@ -28,7 +29,7 @@ This is a fork of the excellent [@mariozechner/gmcli](https://github.com/badlogi
28
29
  | Feature | @mariozechner/gmcli (original) | @smcllns/gmail (this fork) |
29
30
  | --- | --- | --- |
30
31
  | Gmail permissions | Full access | Read and organize mail (no send/delete) |
31
- | OAuth scopes | `mail.google.com` | `gmail.modify`, `gmail.labels` |
32
+ | OAuth scopes | `mail.google.com` | `gmail.modify`, `gmail.labels` (live) / `gmail.readonly` (dry-run) |
32
33
  | Read email | ✅ Yes | ✅ Yes |
33
34
  | Send email | ✅ Yes | ❌ No |
34
35
  | Delete email | ✅ Yes | ❌ No |
@@ -70,8 +71,6 @@ gmail search "in:inbox is:unread" --max 10
70
71
  ### 2. Configure the CLI
71
72
 
72
73
  ```bash
73
- # Config saved in ~/.gmail-cli/
74
-
75
74
  # Set up OAuth Client credentials (once per machine)
76
75
  gmail accounts credentials ~/path/to/credentials.json
77
76
 
@@ -80,6 +79,14 @@ gmail accounts add you@gmail.com
80
79
 
81
80
  # Or use --manual for headless/server environments
82
81
  gmail accounts add you@gmail.com --manual
82
+
83
+ # Dry-run (read-only) mode
84
+ gmail accounts add you@gmail.com --readonly
85
+
86
+ # Upgrade to live mode (label changes)
87
+ gmail accounts upgrade you@gmail.com
88
+
89
+ Read-only accounts can search and read threads; label changes require upgrade.
83
90
  ```
84
91
 
85
92
  ## Usage
@@ -104,14 +111,19 @@ gmail thread <threadId>
104
111
  gmail thread <threadId> --download # saves attachments to ~/.gmail-cli/attachments/
105
112
  ```
106
113
 
114
+ Downloaded attachment filenames are sanitized and may differ from originals.
115
+
107
116
  ### Manage labels
108
117
 
118
+ Adding TRASH or SPAM is blocked unless you pass `--allow-dangerous-labels`.
119
+
109
120
  ```bash
110
121
  gmail labels list
111
122
  gmail labels create "My Label"
112
123
  gmail labels create "Urgent" --text "#ffffff" --bg "#fb4c2f" # with colors
113
124
  gmail labels edit "My Label" --name "Renamed" --bg "#16a765"
114
125
  gmail labels <threadId> --add Receipts --remove INBOX # add label "Receipts" and archive thread
126
+ gmail labels <threadId> --add TRASH --allow-dangerous-labels # requires explicit override
115
127
  ```
116
128
 
117
129
  ### Get Gmail URLs to view messages in browser
@@ -120,6 +132,25 @@ gmail labels <threadId> --add Receipts --remove INBOX # add label "Receipts" an
120
132
  gmail url <threadId>
121
133
  ```
122
134
 
135
+ ## Custom config directory
136
+
137
+ By default, credentials, accounts, and attachments are stored in `~/.gmail-cli/`. Use `--config-dir` to store them in a project-local directory instead:
138
+
139
+ ```bash
140
+ # All commands use the custom directory for that invocation
141
+ gmail --config-dir ./.gmail accounts credentials ~/creds.json
142
+ gmail --config-dir ./.gmail accounts add you@gmail.com
143
+ gmail --config-dir ./.gmail search "in:inbox"
144
+ ```
145
+
146
+ Programmatic usage:
147
+
148
+ ```typescript
149
+ const gmail = new GmailService({ configDir: './.gmail' });
150
+ ```
151
+
152
+ Relative paths are resolved to absolute. The directory is created automatically on first use.
153
+
123
154
  ## Full command reference
124
155
 
125
156
  ```
@@ -129,12 +160,15 @@ USAGE
129
160
  gmail config <action> Configuration management
130
161
  gmail <command> [options] Gmail operations (uses default account)
131
162
  gmail --account <email> <command> Gmail operations with specific account
163
+ gmail --config-dir <path> <command> Use custom config directory (default: ~/.gmail-cli/)
132
164
 
133
165
  ACCOUNT COMMANDS
134
166
 
135
167
  gmail accounts credentials <file> Set OAuth credentials (once)
136
168
  gmail accounts list List configured accounts
137
169
  gmail accounts add <email> Add account (--manual for browserless OAuth)
170
+ gmail accounts add <email> --readonly Add account in read-only mode (dry-run)
171
+ gmail accounts upgrade <email> Upgrade to live access (modify labels)
138
172
  gmail accounts remove <email> Remove account
139
173
 
140
174
  CONFIG COMMANDS
@@ -149,7 +183,7 @@ GMAIL COMMANDS
149
183
  Returns: thread ID, date, sender, subject, labels.
150
184
 
151
185
  gmail thread <threadId> [--download]
152
- Get full thread. --download saves attachments.
186
+ Get full thread. --download saves attachments to <config-dir>/attachments/.
153
187
 
154
188
  gmail labels list
155
189
  List all labels with ID, name, type, and colors.
@@ -160,9 +194,10 @@ GMAIL COMMANDS
160
194
  gmail labels edit <label> [--name <newName>] [--text HEX] [--bg HEX]
161
195
  Edit a label's name and/or colors.
162
196
 
163
- gmail labels <threadIds...> [--add L] [--remove L]
197
+ gmail labels <threadIds...> [--add L] [--remove L] [--allow-dangerous-labels]
164
198
  Modify labels on threads.
165
199
  System labels: INBOX, UNREAD, STARRED, IMPORTANT, TRASH, SPAM
200
+ Adding TRASH or SPAM is blocked unless --allow-dangerous-labels is set.
166
201
 
167
202
  gmail url <threadIds...>
168
203
  Generate Gmail web URLs for threads.
@@ -172,12 +207,14 @@ RESTRICTED (returns guidance to use Gmail web UI)
172
207
  gmail send
173
208
  gmail delete
174
209
 
175
- DATA STORAGE
210
+ DATA STORAGE (default: ~/.gmail-cli/, override with --config-dir)
211
+
212
+ <config-dir>/credentials.json OAuth client credentials
213
+ <config-dir>/accounts.json Account tokens
214
+ <config-dir>/config.json CLI configuration
215
+ <config-dir>/attachments/ Downloaded attachments
176
216
 
177
- ~/.gmail-cli/credentials.json OAuth client credentials
178
- ~/.gmail-cli/accounts.json Account tokens
179
- ~/.gmail-cli/config.json CLI configuration
180
- ~/.gmail-cli/attachments/ Downloaded attachments
217
+ If `accounts.json` is corrupted or malformed, the CLI will error instead of silently continuing.
181
218
  ```
182
219
 
183
220
  ## Programmatic Usage
@@ -187,7 +224,6 @@ DATA STORAGE
187
224
  ```typescript
188
225
  import { GmailService } from '@smcllns/gmail';
189
226
 
190
- // File-based accounts (reads from ~/.gmail-cli/)
191
227
  const gmail = new GmailService();
192
228
  const thread = await gmail.getThread('you@gmail.com', 'threadId123');
193
229
  ```
@@ -219,8 +255,28 @@ const threads = await gmail.searchThreads('user@gmail.com', 'in:inbox', 50);
219
255
 
220
256
  When only using in-memory accounts, `GmailService` never touches the filesystem (`~/.gmail-cli/`).
221
257
 
258
+ If you set `account.scopes`, label operations enforce those scopes; include `gmail.labels` for create/update.
259
+
222
260
  Note: `getThread()` normalizes Google API responses, converting `null` values to `undefined`.
223
261
 
262
+ #### Available methods
263
+
264
+ | Method | Description |
265
+ | --- | --- |
266
+ | `searchThreads(email, query, maxResults?, pageToken?, labelIds?)` | Search threads using [Gmail query syntax](https://support.google.com/mail/answer/7190) |
267
+ | `getThread(email, threadId, downloadAttachments?)` | Get full thread with parsed message content |
268
+ | `modifyLabels(email, threadIds, addLabels?, removeLabels?)` | Add/remove labels on threads |
269
+ | `listLabels(email)` | List all labels with IDs, names, types, and colors |
270
+ | `createLabel(email, name, options?)` | Create a label with optional colors |
271
+ | `updateLabel(email, labelId, options?)` | Update a label's name or colors |
272
+ | `getLabelMap(email)` | Get bidirectional label name/ID lookup maps |
273
+ | `downloadMessageAttachments(email, messageId)` | Download all attachments from a message |
274
+ | `setAccountTokens(account)` | Add or update account tokens in memory |
275
+ | `addGmailAccount(email, clientId, clientSecret, manual?, options?)` | Add account via OAuth (disk-backed) |
276
+ | `updateGmailAccount(email, clientId, clientSecret, manual?, options?)` | Re-auth and replace stored tokens (disk-backed) |
277
+ | `listAccounts()` | List all configured accounts |
278
+ | `deleteAccount(email)` | Remove an account |
279
+
224
280
  ### MockGmailService
225
281
 
226
282
  A mock implementation for testing code that depends on GmailService:
@@ -1,10 +1,16 @@
1
1
  import type { EmailAccount } from "./types.js";
2
+ export declare const DEFAULT_CONFIG_DIR: string;
2
3
  export declare class AccountStorage {
4
+ readonly configDir: string;
5
+ private readonly accountsFile;
6
+ private readonly credentialsFile;
7
+ private readonly configFile;
3
8
  private accounts;
4
- constructor();
9
+ constructor(configDir?: string);
5
10
  private ensureConfigDir;
6
11
  private loadAccounts;
7
12
  private saveAccounts;
13
+ private writeJsonFileAtomic;
8
14
  addAccount(account: EmailAccount): void;
9
15
  getAccount(email: string): EmailAccount | undefined;
10
16
  getAllAccounts(): EmailAccount[];
@@ -1 +1 @@
1
- {"version":3,"file":"account-storage.d.ts","sourceRoot":"","sources":["../src/account-storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO/C,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAwC;;IAOxD,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAIpB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAKvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,cAAc,IAAI,YAAY,EAAE;IAIhC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI5D,cAAc,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASnE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAKlC,mBAAmB,IAAI,IAAI;IAM3B,OAAO,CAAC,UAAU;CAQlB"}
1
+ {"version":3,"file":"account-storage.d.ts","sourceRoot":"","sources":["../src/account-storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AAExE,qBAAa,cAAc;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAwC;gBAE5C,SAAS,CAAC,EAAE,MAAM;IAS9B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,mBAAmB;IAQ3B,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAKvC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,cAAc,IAAI,YAAY,EAAE;IAIhC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAK5D,cAAc,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASnE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMtC,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAKlC,mBAAmB,IAAI,IAAI;IAM3B,OAAO,CAAC,UAAU;CAQlB"}
@@ -1,36 +1,54 @@
1
1
  import * as fs from "fs";
2
2
  import * as os from "os";
3
3
  import * as path from "path";
4
- const CONFIG_DIR = path.join(os.homedir(), ".gmail-cli");
5
- const ACCOUNTS_FILE = path.join(CONFIG_DIR, "accounts.json");
6
- const CREDENTIALS_FILE = path.join(CONFIG_DIR, "credentials.json");
7
- const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
4
+ export const DEFAULT_CONFIG_DIR = path.join(os.homedir(), ".gmail-cli");
8
5
  export class AccountStorage {
6
+ configDir;
7
+ accountsFile;
8
+ credentialsFile;
9
+ configFile;
9
10
  accounts = new Map();
10
- constructor() {
11
+ constructor(configDir) {
12
+ this.configDir = configDir ?? DEFAULT_CONFIG_DIR;
13
+ this.accountsFile = path.join(this.configDir, "accounts.json");
14
+ this.credentialsFile = path.join(this.configDir, "credentials.json");
15
+ this.configFile = path.join(this.configDir, "config.json");
11
16
  this.ensureConfigDir();
12
17
  this.loadAccounts();
13
18
  }
14
19
  ensureConfigDir() {
15
- if (!fs.existsSync(CONFIG_DIR)) {
16
- fs.mkdirSync(CONFIG_DIR, { recursive: true });
20
+ if (!fs.existsSync(this.configDir)) {
21
+ // Security: restrict config directory permissions for stored tokens.
22
+ fs.mkdirSync(this.configDir, { recursive: true, mode: 0o700 });
17
23
  }
18
24
  }
19
25
  loadAccounts() {
20
- if (fs.existsSync(ACCOUNTS_FILE)) {
26
+ if (fs.existsSync(this.accountsFile)) {
21
27
  try {
22
- const data = JSON.parse(fs.readFileSync(ACCOUNTS_FILE, "utf8"));
28
+ const data = JSON.parse(fs.readFileSync(this.accountsFile, "utf8"));
29
+ if (!Array.isArray(data)) {
30
+ // Security: fail closed on corrupted accounts file.
31
+ throw new Error("Invalid accounts file format");
32
+ }
23
33
  for (const account of data) {
24
34
  this.accounts.set(account.email, account);
25
35
  }
26
36
  }
27
37
  catch {
28
- // Ignore
38
+ // Security: surface parse failures instead of silently continuing.
39
+ throw new Error(`Failed to parse accounts file: ${this.accountsFile}`);
29
40
  }
30
41
  }
31
42
  }
32
43
  saveAccounts() {
33
- fs.writeFileSync(ACCOUNTS_FILE, JSON.stringify(Array.from(this.accounts.values()), null, 2));
44
+ this.writeJsonFileAtomic(this.accountsFile, Array.from(this.accounts.values()));
45
+ }
46
+ writeJsonFileAtomic(filePath, data) {
47
+ const dir = path.dirname(filePath);
48
+ const tempPath = path.join(dir, `.tmp-${path.basename(filePath)}-${process.pid}-${Date.now()}`);
49
+ // Security: atomic write with restrictive perms for secret-bearing files.
50
+ fs.writeFileSync(tempPath, JSON.stringify(data, null, 2), { mode: 0o600 });
51
+ fs.renameSync(tempPath, filePath);
34
52
  }
35
53
  addAccount(account) {
36
54
  this.accounts.set(account.email, account);
@@ -52,13 +70,14 @@ export class AccountStorage {
52
70
  return this.accounts.has(email);
53
71
  }
54
72
  setCredentials(clientId, clientSecret) {
55
- fs.writeFileSync(CREDENTIALS_FILE, JSON.stringify({ clientId, clientSecret }, null, 2));
73
+ // Security: atomic write prevents partial secrets if the process crashes.
74
+ this.writeJsonFileAtomic(this.credentialsFile, { clientId, clientSecret });
56
75
  }
57
76
  getCredentials() {
58
- if (!fs.existsSync(CREDENTIALS_FILE))
77
+ if (!fs.existsSync(this.credentialsFile))
59
78
  return null;
60
79
  try {
61
- return JSON.parse(fs.readFileSync(CREDENTIALS_FILE, "utf8"));
80
+ return JSON.parse(fs.readFileSync(this.credentialsFile, "utf8"));
62
81
  }
63
82
  catch {
64
83
  return null;
@@ -67,7 +86,7 @@ export class AccountStorage {
67
86
  setDefaultAccount(email) {
68
87
  const config = this.loadConfig();
69
88
  config.defaultAccount = email;
70
- fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
89
+ this.writeJsonFileAtomic(this.configFile, config);
71
90
  }
72
91
  getDefaultAccount() {
73
92
  const config = this.loadConfig();
@@ -76,13 +95,13 @@ export class AccountStorage {
76
95
  clearDefaultAccount() {
77
96
  const config = this.loadConfig();
78
97
  delete config.defaultAccount;
79
- fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
98
+ this.writeJsonFileAtomic(this.configFile, config);
80
99
  }
81
100
  loadConfig() {
82
- if (!fs.existsSync(CONFIG_FILE))
101
+ if (!fs.existsSync(this.configFile))
83
102
  return {};
84
103
  try {
85
- return JSON.parse(fs.readFileSync(CONFIG_FILE, "utf8"));
104
+ return JSON.parse(fs.readFileSync(this.configFile, "utf8"));
86
105
  }
87
106
  catch {
88
107
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"account-storage.js","sourceRoot":"","sources":["../src/account-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-storage.js","sourceRoot":"","sources":["../src/account-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AAExE,MAAM,OAAO,cAAc;IACjB,SAAS,CAAS;IACV,YAAY,CAAS;IACrB,eAAe,CAAS;IACxB,UAAU,CAAS;IAC5B,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAExD,YAAY,SAAkB;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,kBAAkB,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAEO,eAAe;QACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,qEAAqE;YACrE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;IAEO,YAAY;QACnB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,oDAAoD;oBACpD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACjD,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,mEAAmE;gBACnE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;IACF,CAAC;IAEO,YAAY;QACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAEO,mBAAmB,CAAC,QAAgB,EAAE,IAAa;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChG,0EAA0E;QAC1E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,OAAqB;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,cAAc;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,KAAa;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,OAAO;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,YAAoB;QACpD,0EAA0E;QAC1E,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,cAAc;QACb,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,iBAAiB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,mBAAmB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAEO,UAAU;QACjB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;CACD"}
package/dist/cli.js CHANGED
@@ -1,8 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import * as fs from "fs";
3
3
  import { parseArgs } from "util";
4
- import { GmailService } from "./gmail-service.js";
5
- const service = new GmailService();
4
+ import { DEFAULT_GMAIL_SCOPES, GmailService, READONLY_GMAIL_SCOPES } from "./gmail-service.js";
5
+ let service;
6
+ // Security model: this CLI is for read + label changes by agents; destructive labels are blocked by default.
7
+ const DANGEROUS_LABELS = new Set(["TRASH", "SPAM"]);
8
+ const CONTROL_CHARS = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g;
6
9
  // Custom error class for restricted operations
7
10
  class RestrictedOperationError extends Error {
8
11
  constructor(operation, guidance) {
@@ -19,13 +22,15 @@ USAGE
19
22
  gmail config <action> Configuration management
20
23
  gmail <command> [options] Gmail operations (uses default account)
21
24
  gmail --account <email> <command> Gmail operations with specific account
25
+ gmail --config-dir <path> <command> Use custom config directory (default: ~/.gmail-cli/)
22
26
 
23
27
  ACCOUNT COMMANDS
24
28
 
25
- gmail accounts credentials <file.json> Set OAuth credentials (once)
26
- gmail accounts list List configured accounts
27
- gmail accounts add <email> [--manual] Add account (--manual for browserless OAuth)
28
- gmail accounts remove <email> Remove account
29
+ gmail accounts credentials <file.json> Set OAuth credentials (once)
30
+ gmail accounts list List configured accounts
31
+ gmail accounts add <email> [--manual] [--readonly] Add account (--readonly for dry-run)
32
+ gmail accounts upgrade <email> [--manual] Upgrade to live access (modify labels)
33
+ gmail accounts remove <email> Remove account
29
34
 
30
35
  CONFIG COMMANDS
31
36
 
@@ -49,7 +54,7 @@ GMAIL COMMANDS
49
54
  gmail thread <threadId> [--download]
50
55
  Get thread with all messages.
51
56
  Shows: Message-ID, headers, body, attachments.
52
- --download saves attachments to ~/.gmail-cli/attachments/
57
+ --download saves attachments to <config-dir>/attachments/
53
58
 
54
59
  gmail labels list
55
60
  List all labels with ID, name, type, and colors.
@@ -62,10 +67,11 @@ GMAIL COMMANDS
62
67
  Edit a label's name and/or colors. Accepts label name or ID.
63
68
  Colors must be hex codes from Gmail's palette.
64
69
 
65
- gmail labels <threadIds...> [--add L] [--remove L]
70
+ gmail labels <threadIds...> [--add L] [--remove L] [--allow-dangerous-labels]
66
71
  Modify labels on threads (comma-separated for multiple).
67
72
  Accepts label names or IDs (names are case-insensitive).
68
73
  System labels: INBOX, UNREAD, STARRED, IMPORTANT, TRASH, SPAM
74
+ Adding TRASH or SPAM is blocked unless --allow-dangerous-labels is set.
69
75
 
70
76
  gmail url <threadIds...>
71
77
  Generate Gmail web URLs for threads.
@@ -79,6 +85,8 @@ RESTRICTED OPERATIONS (will return guidance instead of executing)
79
85
  EXAMPLES
80
86
 
81
87
  gmail config default you@gmail.com
88
+ gmail accounts add you@gmail.com --readonly
89
+ gmail accounts upgrade you@gmail.com
82
90
  gmail search "in:inbox is:unread"
83
91
  gmail search "from:boss@company.com" --max 50
84
92
  gmail thread 19aea1f2f3532db5
@@ -91,12 +99,12 @@ EXAMPLES
91
99
  gmail labels abc123 --add Work --remove UNREAD
92
100
  gmail url 19aea1f2f3532db5 19aea1f2f3532db6
93
101
 
94
- DATA STORAGE
102
+ DATA STORAGE (default: ~/.gmail-cli/, override with --config-dir)
95
103
 
96
- ~/.gmail-cli/credentials.json OAuth client credentials
97
- ~/.gmail-cli/accounts.json Account tokens
98
- ~/.gmail-cli/config.json CLI configuration (default account)
99
- ~/.gmail-cli/attachments/ Downloaded attachments`);
104
+ <config-dir>/credentials.json OAuth client credentials
105
+ <config-dir>/accounts.json Account tokens
106
+ <config-dir>/config.json CLI configuration (default account)
107
+ <config-dir>/attachments/ Downloaded attachments`);
100
108
  process.exit(1);
101
109
  }
102
110
  function error(msg) {
@@ -123,6 +131,16 @@ async function main() {
123
131
  if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
124
132
  usage();
125
133
  }
134
+ // Extract --config-dir before creating service
135
+ let configDir;
136
+ const configDirIndex = args.indexOf("--config-dir");
137
+ if (configDirIndex !== -1) {
138
+ configDir = args[configDirIndex + 1];
139
+ if (!configDir)
140
+ error("--config-dir requires a path argument");
141
+ args.splice(configDirIndex, 2);
142
+ }
143
+ service = new GmailService(configDir ? { configDir } : undefined);
126
144
  const first = args[0];
127
145
  const rest = args.slice(1);
128
146
  try {
@@ -205,7 +223,7 @@ async function handleConfig(args) {
205
223
  async function handleAccounts(args) {
206
224
  const action = args[0];
207
225
  if (!action)
208
- error("Missing action: list|add|remove|credentials");
226
+ error("Missing action: list|add|upgrade|remove|credentials");
209
227
  switch (action) {
210
228
  case "list": {
211
229
  const accounts = service.listAccounts();
@@ -235,15 +253,21 @@ async function handleAccounts(args) {
235
253
  }
236
254
  case "add": {
237
255
  const manual = args.includes("--manual");
238
- const filtered = args.slice(1).filter((a) => a !== "--manual");
256
+ const readonly = args.includes("--readonly");
257
+ const filtered = args.slice(1).filter((a) => a !== "--manual" && a !== "--readonly");
239
258
  const email = filtered[0];
240
259
  if (!email)
241
- error("Usage: gmail accounts add <email> [--manual]");
260
+ error("Usage: gmail accounts add <email> [--manual] [--readonly]");
242
261
  const creds = service.getCredentials();
243
262
  if (!creds)
244
263
  error("No credentials configured. Run: gmail accounts credentials <credentials.json>");
245
- await service.addGmailAccount(email, creds.clientId, creds.clientSecret, manual);
246
- console.log(`Account '${email}' added`);
264
+ const scopes = readonly ? READONLY_GMAIL_SCOPES : DEFAULT_GMAIL_SCOPES;
265
+ await service.addGmailAccount(email, creds.clientId, creds.clientSecret, manual, {
266
+ scopes,
267
+ // Security: avoid inheriting previously granted scopes in readonly mode.
268
+ includeGrantedScopes: readonly ? false : undefined,
269
+ });
270
+ console.log(`Account '${email}' added${readonly ? " (readonly)" : ""}`);
247
271
  // Set as default if it's the first account
248
272
  const accounts = service.listAccounts();
249
273
  if (accounts.length === 1) {
@@ -252,6 +276,29 @@ async function handleAccounts(args) {
252
276
  }
253
277
  break;
254
278
  }
279
+ case "upgrade": {
280
+ const manual = args.includes("--manual");
281
+ const filtered = args.slice(1).filter((a) => a !== "--manual");
282
+ const email = filtered[0];
283
+ if (!email)
284
+ error("Usage: gmail accounts upgrade <email> [--manual]");
285
+ const creds = service.getCredentials();
286
+ if (!creds)
287
+ error("No credentials configured. Run: gmail accounts credentials <credentials.json>");
288
+ const accounts = service.listAccounts();
289
+ const exists = accounts.some((a) => a.email === email);
290
+ if (!exists) {
291
+ error(`Account '${email}' not found. Add it first with: gmail accounts add ${email}`);
292
+ }
293
+ await service.updateGmailAccount(email, creds.clientId, creds.clientSecret, manual, {
294
+ scopes: DEFAULT_GMAIL_SCOPES,
295
+ prompt: "consent",
296
+ // Security: require explicit consent for live access.
297
+ includeGrantedScopes: false,
298
+ });
299
+ console.log(`Account '${email}' upgraded to live access`);
300
+ break;
301
+ }
255
302
  case "remove": {
256
303
  const email = args[1];
257
304
  if (!email)
@@ -303,8 +350,8 @@ async function handleSearch(account, args) {
303
350
  for (const t of results.threads) {
304
351
  const msg = t.messages[0];
305
352
  const date = msg?.date ? new Date(msg.date).toISOString().slice(0, 16).replace("T", " ") : "";
306
- const from = msg?.from?.replace(/\t/g, " ") || "";
307
- const subject = msg?.subject?.replace(/\t/g, " ") || "(no subject)";
353
+ const from = sanitizeSingleLine(msg?.from || "");
354
+ const subject = sanitizeSingleLine(msg?.subject || "(no subject)");
308
355
  // Aggregate labels from all messages in thread to match Gmail web behavior
309
356
  const allLabelIds = new Set();
310
357
  for (const m of t.messages) {
@@ -342,13 +389,13 @@ async function handleThread(account, args) {
342
389
  else {
343
390
  const thread = result;
344
391
  for (const msg of thread.messages || []) {
345
- console.log(`Message-ID: ${msg.id}`);
346
- console.log(`From: ${msg.parsed.headers.from || ""}`);
347
- console.log(`To: ${msg.parsed.headers.to || ""}`);
348
- console.log(`Date: ${msg.parsed.headers.date || ""}`);
349
- console.log(`Subject: ${msg.parsed.headers.subject || ""}`);
392
+ console.log(`Message-ID: ${sanitizeSingleLine(msg.id || "")}`);
393
+ console.log(`From: ${sanitizeSingleLine(msg.parsed.headers.from || "")}`);
394
+ console.log(`To: ${sanitizeSingleLine(msg.parsed.headers.to || "")}`);
395
+ console.log(`Date: ${sanitizeSingleLine(msg.parsed.headers.date || "")}`);
396
+ console.log(`Subject: ${sanitizeSingleLine(msg.parsed.headers.subject || "")}`);
350
397
  console.log("");
351
- console.log(msg.parsed.body);
398
+ console.log(sanitizeForTerminal(msg.parsed.body));
352
399
  console.log("");
353
400
  if (msg.parsed.attachments.length > 0) {
354
401
  console.log("Attachments:");
@@ -368,6 +415,13 @@ function formatSize(bytes) {
368
415
  const i = Math.floor(Math.log(bytes) / Math.log(1024));
369
416
  return `${(bytes / 1024 ** i).toFixed(i > 0 ? 1 : 0)} ${units[i]}`;
370
417
  }
418
+ function sanitizeForTerminal(value) {
419
+ // Security: strip control chars to prevent terminal escape injection.
420
+ return value.replace(/\r\n/g, "\n").replace(/\r/g, "\n").replace(CONTROL_CHARS, "");
421
+ }
422
+ function sanitizeSingleLine(value) {
423
+ return sanitizeForTerminal(value).replace(/\n+/g, " ").replace(/\t/g, " ").trim();
424
+ }
371
425
  async function handleLabels(account, args) {
372
426
  const { values, positionals } = parseArgs({
373
427
  args,
@@ -377,11 +431,13 @@ async function handleLabels(account, args) {
377
431
  name: { type: "string", short: "n" },
378
432
  text: { type: "string" },
379
433
  bg: { type: "string" },
434
+ "allow-dangerous-labels": { type: "boolean" },
380
435
  },
381
436
  allowPositionals: true,
382
437
  });
438
+ const allowDangerous = Boolean(values["allow-dangerous-labels"]);
383
439
  if (positionals.length === 0) {
384
- error("Usage: gmail labels list | create <name> | edit <label> --name <new> | <threadIds...> [--add L] [--remove L]");
440
+ error("Usage: gmail labels list | create <name> | edit <label> --name <new> | <threadIds...> [--add L] [--remove L] [--allow-dangerous-labels]");
385
441
  }
386
442
  // labels list
387
443
  if (positionals[0] === "list") {
@@ -450,6 +506,14 @@ async function handleLabels(account, args) {
450
506
  }
451
507
  }
452
508
  const addLabels = values.add ? service.resolveLabelIds(values.add.split(","), nameToId) : [];
509
+ if (!allowDangerous) {
510
+ // Security: block dangerous system labels unless explicitly allowed.
511
+ const dangerous = addLabels.filter((label) => DANGEROUS_LABELS.has(label.toUpperCase()));
512
+ if (dangerous.length > 0) {
513
+ error(`Refusing to add label(s): ${dangerous.join(", ")}
514
+ Use --allow-dangerous-labels to override.`);
515
+ }
516
+ }
453
517
  const removeLabels = values.remove ? service.resolveLabelIds(values.remove.split(","), nameToId) : [];
454
518
  const results = await service.modifyLabels(account, threadIds, addLabels, removeLabels);
455
519
  for (const r of results) {
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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"}
@@ -1,13 +1,27 @@
1
+ export declare const GMAIL_MODIFY_SCOPE = "https://www.googleapis.com/auth/gmail.modify";
2
+ export declare const GMAIL_LABELS_SCOPE = "https://www.googleapis.com/auth/gmail.labels";
3
+ export declare const GMAIL_READONLY_SCOPE = "https://www.googleapis.com/auth/gmail.readonly";
4
+ export declare const DEFAULT_GMAIL_SCOPES: string[];
5
+ export declare const READONLY_GMAIL_SCOPES: string[];
6
+ export type GmailOAuthOptions = {
7
+ scopes?: string[];
8
+ includeGrantedScopes?: boolean;
9
+ prompt?: "consent" | "select_account" | "none";
10
+ };
1
11
  export declare class GmailOAuthFlow {
2
12
  private oauth2Client;
3
13
  private server;
4
14
  private timeoutId;
5
- constructor(clientId: string, clientSecret: string);
15
+ private scopes;
16
+ private includeGrantedScopes?;
17
+ private prompt?;
18
+ constructor(clientId: string, clientSecret: string, options?: GmailOAuthOptions);
6
19
  authorize(manual?: boolean): Promise<string>;
7
20
  private startManualFlow;
8
21
  private startAuthFlow;
9
22
  private handleCallback;
10
23
  private cleanup;
24
+ private buildAuthUrl;
11
25
  private openBrowser;
12
26
  }
13
27
  //# sourceMappingURL=gmail-oauth-flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gmail-oauth-flow.d.ts","sourceRoot":"","sources":["../src/gmail-oauth-flow.ts"],"names":[],"mappings":"AAmBA,qBAAa,cAAc;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAA+B;gBAEpC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAI5C,SAAS,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAWlC,eAAe;IAqC7B,OAAO,CAAC,aAAa;YA8CP,cAAc;IAmC5B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,WAAW;CAInB"}
1
+ {"version":3,"file":"gmail-oauth-flow.d.ts","sourceRoot":"","sources":["../src/gmail-oauth-flow.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,iDAAiD,CAAC;AACjF,eAAO,MAAM,kBAAkB,iDAAiD,CAAC;AACjF,eAAO,MAAM,oBAAoB,mDAAmD,CAAC;AACrF,eAAO,MAAM,oBAAoB,UAGhC,CAAC;AACF,eAAO,MAAM,qBAAqB,UAAyB,CAAC;AAS5D,MAAM,MAAM,iBAAiB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC;CAC/C,CAAC;AAEF,qBAAa,cAAc;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,oBAAoB,CAAC,CAAU;IACvC,OAAO,CAAC,MAAM,CAAC,CAAwC;gBAE3C,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAOzE,SAAS,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAWlC,eAAe;IAkC7B,OAAO,CAAC,aAAa;YA2CP,cAAc;IAmC5B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,WAAW;CAInB"}
@@ -3,17 +3,27 @@ import * as http from "http";
3
3
  import * as readline from "readline";
4
4
  import * as url from "url";
5
5
  import { OAuth2Client } from "google-auth-library";
6
- const SCOPES = [
7
- "https://www.googleapis.com/auth/gmail.modify", // Read messages, threads, add and remove labels
8
- "https://www.googleapis.com/auth/gmail.labels", // Create and edit labels
6
+ export const GMAIL_MODIFY_SCOPE = "https://www.googleapis.com/auth/gmail.modify";
7
+ export const GMAIL_LABELS_SCOPE = "https://www.googleapis.com/auth/gmail.labels";
8
+ export const GMAIL_READONLY_SCOPE = "https://www.googleapis.com/auth/gmail.readonly";
9
+ export const DEFAULT_GMAIL_SCOPES = [
10
+ GMAIL_MODIFY_SCOPE, // Read messages, threads, add and remove labels
11
+ GMAIL_LABELS_SCOPE, // Create and edit labels
9
12
  ];
13
+ export const READONLY_GMAIL_SCOPES = [GMAIL_READONLY_SCOPE];
10
14
  const TIMEOUT_MS = 2 * 60 * 1000;
11
15
  export class GmailOAuthFlow {
12
16
  oauth2Client;
13
17
  server = null;
14
18
  timeoutId = null;
15
- constructor(clientId, clientSecret) {
19
+ scopes;
20
+ includeGrantedScopes;
21
+ prompt;
22
+ constructor(clientId, clientSecret, options) {
16
23
  this.oauth2Client = new OAuth2Client(clientId, clientSecret);
24
+ this.scopes = options?.scopes ?? DEFAULT_GMAIL_SCOPES;
25
+ this.includeGrantedScopes = options?.includeGrantedScopes;
26
+ this.prompt = options?.prompt;
17
27
  }
18
28
  async authorize(manual = false) {
19
29
  const result = manual ? await this.startManualFlow() : await this.startAuthFlow();
@@ -28,10 +38,7 @@ export class GmailOAuthFlow {
28
38
  async startManualFlow() {
29
39
  const redirectUri = "http://localhost:1";
30
40
  this.oauth2Client = new OAuth2Client(this.oauth2Client._clientId, this.oauth2Client._clientSecret, redirectUri);
31
- const authUrl = this.oauth2Client.generateAuthUrl({
32
- access_type: "offline",
33
- scope: SCOPES,
34
- });
41
+ const authUrl = this.buildAuthUrl();
35
42
  console.log("Visit this URL to authorize:");
36
43
  console.log(authUrl);
37
44
  console.log("");
@@ -74,10 +81,7 @@ export class GmailOAuthFlow {
74
81
  const port = this.server.address().port;
75
82
  const redirectUri = `http://localhost:${port}`;
76
83
  this.oauth2Client = new OAuth2Client(this.oauth2Client._clientId, this.oauth2Client._clientSecret, redirectUri);
77
- const authUrl = this.oauth2Client.generateAuthUrl({
78
- access_type: "offline",
79
- scope: SCOPES,
80
- });
84
+ const authUrl = this.buildAuthUrl();
81
85
  console.log("Opening browser for Gmail authorization...");
82
86
  console.log("If browser doesn't open, visit this URL:");
83
87
  console.log(authUrl);
@@ -133,6 +137,19 @@ export class GmailOAuthFlow {
133
137
  this.server = null;
134
138
  }
135
139
  }
140
+ buildAuthUrl() {
141
+ const options = {
142
+ access_type: "offline",
143
+ scope: this.scopes,
144
+ };
145
+ if (this.includeGrantedScopes !== undefined) {
146
+ options.include_granted_scopes = this.includeGrantedScopes;
147
+ }
148
+ if (this.prompt) {
149
+ options.prompt = this.prompt;
150
+ }
151
+ return this.oauth2Client.generateAuthUrl(options);
152
+ }
136
153
  openBrowser(url) {
137
154
  const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
138
155
  spawn(cmd, [url], { detached: true, stdio: "ignore" });
@@ -1 +1 @@
1
- {"version":3,"file":"gmail-oauth-flow.js","sourceRoot":"","sources":["../src/gmail-oauth-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail-oauth-flow.js","sourceRoot":"","sources":["../src/gmail-oauth-flow.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type gmail_v1 } from "googleapis";
2
+ import { type GmailOAuthOptions } from "./gmail-oauth-flow.js";
2
3
  import type { EmailAccount } from "./types.js";
3
4
  export type { EmailAccount } from "./types.js";
5
+ export { DEFAULT_GMAIL_SCOPES, GMAIL_LABELS_SCOPE, GMAIL_MODIFY_SCOPE, GMAIL_READONLY_SCOPE, READONLY_GMAIL_SCOPES, } from "./gmail-oauth-flow.js";
4
6
  type GmailThread = gmail_v1.Schema$Thread;
5
7
  type GmailMessage = gmail_v1.Schema$Message;
6
8
  export declare const GMAIL_LABEL_COLORS: Set<string>;
@@ -8,6 +10,7 @@ export declare function validateLabelColor(color: string, name: string): void;
8
10
  export declare function decodeBase64Url(data: string): string;
9
11
  export declare function decodeHtmlEntities(text: string): string;
10
12
  export declare function stripHtml(html: string): string;
13
+ export declare function sanitizeFilename(name: string): string;
11
14
  /**
12
15
  * Recursively converts null values to undefined in an object.
13
16
  * This normalizes Google API responses (which use null for absent values)
@@ -97,20 +100,23 @@ export interface EnhancedThread extends Omit<GmailThread, "messages"> {
97
100
  }
98
101
  export interface GmailServiceOptions {
99
102
  accounts?: EmailAccount[];
103
+ configDir?: string;
100
104
  }
101
105
  export declare class GmailService {
102
106
  private _accountStorage?;
107
+ private configDir?;
103
108
  private gmailClients;
104
109
  private inMemoryAccounts;
105
110
  constructor(options?: GmailServiceOptions);
106
111
  /**
107
- * Lazily initialized — accessing this property triggers filesystem setup (~/.gmail-cli/).
112
+ * Lazily initialized — accessing this property triggers filesystem setup.
108
113
  * Methods that use this are inherently disk-based (addGmailAccount, setCredentials, etc.).
109
114
  * In-memory-only usage (constructor accounts + setAccountTokens) avoids this path.
110
115
  */
111
116
  private get accountStorage();
112
117
  setAccountTokens(account: EmailAccount): void;
113
- addGmailAccount(email: string, clientId: string, clientSecret: string, manual?: boolean): Promise<void>;
118
+ addGmailAccount(email: string, clientId: string, clientSecret: string, manual?: boolean, options?: GmailOAuthOptions): Promise<void>;
119
+ updateGmailAccount(email: string, clientId: string, clientSecret: string, manual?: boolean, options?: GmailOAuthOptions): Promise<void>;
114
120
  deleteAccount(email: string): boolean;
115
121
  listAccounts(): EmailAccount[];
116
122
  setCredentials(clientId: string, clientSecret: string): void;
@@ -121,6 +127,8 @@ export declare class GmailService {
121
127
  setDefaultAccount(email: string): void;
122
128
  getDefaultAccount(): string | null;
123
129
  clearDefaultAccount(): void;
130
+ private getAccount;
131
+ private ensureAnyScope;
124
132
  private getGmailClient;
125
133
  searchThreads(email: string, query: string, maxResults?: number, pageToken?: string, labelIds?: string[]): Promise<ThreadSearchResult>;
126
134
  getThread(email: string, threadId: string, downloadAttachments?: boolean): Promise<EnhancedThread | DownloadedAttachment[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"gmail-service.d.ts","sourceRoot":"","sources":["../src/gmail-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail-service.d.ts","sourceRoot":"","sources":["../src/gmail-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAU,MAAM,YAAY,CAAC;AAEnD,OAAO,EAON,KAAK,iBAAiB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,KAAK,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;AAC1C,KAAK,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC;AAE5C,eAAO,MAAM,kBAAkB,aAc7B,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAKpE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAkB3C;AAED,KAAK,cAAc,GAAG;IACrB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,MAAM,CA4BrE;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,kBAAkB,EAAE,CAqBjG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAEzF;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,KAAK,CAAC;YACf,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,YAAY,EAAE,MAAM,CAAC;YACrB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;YACzB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;YACvB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;YAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC;SACxB,CAAC,CAAC;KACH,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACpD,MAAM,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACpE,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,gBAAgB,CAAwC;gBAEpD,OAAO,CAAC,EAAE,mBAAmB;IAWzC;;;;OAIG;IACH,OAAO,KAAK,cAAc,GAKzB;IAED,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAOvC,eAAe,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,UAAQ,EACd,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAkBV,kBAAkB,CACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,UAAQ,EACd,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAmBhB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQrC,YAAY,IAAI,YAAY,EAAE;IAc9B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI5D,cAAc,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAInE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAItC,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,mBAAmB,IAAI,IAAI;IAI3B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAsBhB,aAAa,CAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,UAAU,SAAK,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAwCxB,SAAS,CACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,mBAAmB,UAAQ,GACzB,OAAO,CAAC,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAuF7C,mBAAmB,CACxB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAC/E,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAqDhC,YAAY,CACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,GAAE,MAAM,EAAO,EACxB,YAAY,GAAE,MAAM,EAAO,GACzB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA8B5B,UAAU,CACf,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAYrG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAW3G,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE;IAIpE,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KACpB,GACH,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkC9F,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB,GACE,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkC9F,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2DnG,OAAO,CAAC,cAAc;CAItB"}
@@ -1,10 +1,10 @@
1
1
  import * as fs from "fs";
2
- import * as os from "os";
3
2
  import * as path from "path";
4
3
  import { OAuth2Client } from "google-auth-library";
5
4
  import { google } from "googleapis";
6
- import { AccountStorage } from "./account-storage.js";
7
- import { GmailOAuthFlow } from "./gmail-oauth-flow.js";
5
+ import { AccountStorage, DEFAULT_CONFIG_DIR } from "./account-storage.js";
6
+ import { DEFAULT_GMAIL_SCOPES, GMAIL_LABELS_SCOPE, GMAIL_MODIFY_SCOPE, GmailOAuthFlow, } from "./gmail-oauth-flow.js";
7
+ export { DEFAULT_GMAIL_SCOPES, GMAIL_LABELS_SCOPE, GMAIL_MODIFY_SCOPE, GMAIL_READONLY_SCOPE, READONLY_GMAIL_SCOPES, } from "./gmail-oauth-flow.js";
8
8
  export const GMAIL_LABEL_COLORS = new Set([
9
9
  "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff",
10
10
  "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3",
@@ -50,6 +50,19 @@ export function stripHtml(html) {
50
50
  .replace(/\s+/g, " ")
51
51
  .trim());
52
52
  }
53
+ export function sanitizeFilename(name) {
54
+ // Security: normalize untrusted filenames to prevent traversal or unsafe chars.
55
+ const normalized = (name || "").replace(/\\/g, "/");
56
+ const base = path.posix.basename(normalized);
57
+ const cleaned = base
58
+ .replace(/[\u0000-\u001F\u007F]/g, "")
59
+ .replace(/[<>:"|?*]/g, "")
60
+ .replace(/[\\/]/g, "_")
61
+ .trim();
62
+ const trimmed = cleaned.replace(/[. ]+$/g, "");
63
+ const safe = trimmed || "attachment";
64
+ return safe.length > 200 ? safe.slice(0, 200) : safe;
65
+ }
53
66
  /**
54
67
  * Recursively converts null values to undefined in an object.
55
68
  * This normalizes Google API responses (which use null for absent values)
@@ -126,9 +139,13 @@ export function resolveLabelIds(labels, nameToId) {
126
139
  }
127
140
  export class GmailService {
128
141
  _accountStorage;
142
+ configDir;
129
143
  gmailClients = new Map();
130
144
  inMemoryAccounts = new Map();
131
145
  constructor(options) {
146
+ if (options?.configDir) {
147
+ this.configDir = path.resolve(options.configDir);
148
+ }
132
149
  if (options?.accounts) {
133
150
  for (const account of options.accounts) {
134
151
  this.inMemoryAccounts.set(account.email, account);
@@ -136,13 +153,13 @@ export class GmailService {
136
153
  }
137
154
  }
138
155
  /**
139
- * Lazily initialized — accessing this property triggers filesystem setup (~/.gmail-cli/).
156
+ * Lazily initialized — accessing this property triggers filesystem setup.
140
157
  * Methods that use this are inherently disk-based (addGmailAccount, setCredentials, etc.).
141
158
  * In-memory-only usage (constructor accounts + setAccountTokens) avoids this path.
142
159
  */
143
160
  get accountStorage() {
144
161
  if (!this._accountStorage) {
145
- this._accountStorage = new AccountStorage();
162
+ this._accountStorage = new AccountStorage(this.configDir);
146
163
  }
147
164
  return this._accountStorage;
148
165
  }
@@ -152,17 +169,34 @@ export class GmailService {
152
169
  }
153
170
  // This method always uses disk-backed storage (runs OAuth flow, persists refresh token).
154
171
  // For in-memory token management, use setAccountTokens() instead.
155
- async addGmailAccount(email, clientId, clientSecret, manual = false) {
172
+ async addGmailAccount(email, clientId, clientSecret, manual = false, options) {
156
173
  if (this.inMemoryAccounts.has(email) || this.accountStorage.hasAccount(email)) {
157
174
  throw new Error(`Account '${email}' already exists`);
158
175
  }
159
- const oauthFlow = new GmailOAuthFlow(clientId, clientSecret);
176
+ const oauthFlow = new GmailOAuthFlow(clientId, clientSecret, options);
177
+ const refreshToken = await oauthFlow.authorize(manual);
178
+ const account = {
179
+ email,
180
+ oauth2: { clientId, clientSecret, refreshToken },
181
+ // Security: record granted scopes for later enforcement.
182
+ scopes: options?.scopes ?? DEFAULT_GMAIL_SCOPES,
183
+ };
184
+ this.accountStorage.addAccount(account);
185
+ }
186
+ async updateGmailAccount(email, clientId, clientSecret, manual = false, options) {
187
+ if (!this.accountStorage.hasAccount(email)) {
188
+ throw new Error(`Account '${email}' not found`);
189
+ }
190
+ const oauthFlow = new GmailOAuthFlow(clientId, clientSecret, options);
160
191
  const refreshToken = await oauthFlow.authorize(manual);
161
192
  const account = {
162
193
  email,
163
194
  oauth2: { clientId, clientSecret, refreshToken },
195
+ // Security: record granted scopes for later enforcement.
196
+ scopes: options?.scopes ?? DEFAULT_GMAIL_SCOPES,
164
197
  };
165
198
  this.accountStorage.addAccount(account);
199
+ this.gmailClients.delete(email);
166
200
  }
167
201
  deleteAccount(email) {
168
202
  this.gmailClients.delete(email);
@@ -199,12 +233,27 @@ export class GmailService {
199
233
  clearDefaultAccount() {
200
234
  this.accountStorage.clearDefaultAccount();
201
235
  }
236
+ getAccount(email) {
237
+ const account = this.inMemoryAccounts.get(email) ?? this._accountStorage?.getAccount(email);
238
+ if (!account) {
239
+ throw new Error(`Account '${email}' not found`);
240
+ }
241
+ return account;
242
+ }
243
+ ensureAnyScope(email, required, action) {
244
+ const account = this.getAccount(email);
245
+ if (!account.scopes || account.scopes.length === 0) {
246
+ // Security: preserve compatibility for legacy accounts without recorded scopes.
247
+ return;
248
+ }
249
+ const hasScope = required.some((scope) => account.scopes?.includes(scope));
250
+ if (!hasScope) {
251
+ throw new Error(`Insufficient OAuth scope for ${action}. Required: ${required.join(", ")}.`);
252
+ }
253
+ }
202
254
  getGmailClient(email) {
203
255
  if (!this.gmailClients.has(email)) {
204
- const account = this.inMemoryAccounts.get(email) ?? this._accountStorage?.getAccount(email);
205
- if (!account) {
206
- throw new Error(`Account '${email}' not found`);
207
- }
256
+ const account = this.getAccount(email);
208
257
  const oauth2Client = new OAuth2Client(account.oauth2.clientId, account.oauth2.clientSecret, "http://localhost");
209
258
  oauth2Client.setCredentials({
210
259
  refresh_token: account.oauth2.refreshToken,
@@ -321,14 +370,16 @@ export class GmailService {
321
370
  async downloadAttachments(email, attachments) {
322
371
  const gmail = this.getGmailClient(email);
323
372
  const results = [];
324
- const attachmentDir = path.join(os.homedir(), ".gmail-cli", "attachments");
373
+ const baseDir = this._accountStorage?.configDir ?? this.configDir ?? DEFAULT_CONFIG_DIR;
374
+ const attachmentDir = path.join(baseDir, "attachments");
325
375
  if (!fs.existsSync(attachmentDir)) {
326
376
  fs.mkdirSync(attachmentDir, { recursive: true });
327
377
  }
328
378
  for (const attachment of attachments) {
329
379
  try {
330
380
  const shortAttachmentId = attachment.attachmentId.substring(0, 8);
331
- const filename = `${attachment.messageId}_${shortAttachmentId}_${attachment.filename}`;
381
+ const safeName = sanitizeFilename(attachment.filename);
382
+ const filename = `${attachment.messageId}_${shortAttachmentId}_${safeName}`;
332
383
  const filePath = path.join(attachmentDir, filename);
333
384
  if (fs.existsSync(filePath)) {
334
385
  const existingSize = fs.statSync(filePath).size;
@@ -362,6 +413,7 @@ export class GmailService {
362
413
  return results;
363
414
  }
364
415
  async modifyLabels(email, threadIds, addLabels = [], removeLabels = []) {
416
+ this.ensureAnyScope(email, [GMAIL_MODIFY_SCOPE], "modifying labels");
365
417
  const gmail = this.getGmailClient(email);
366
418
  const results = [];
367
419
  for (const threadId of threadIds) {
@@ -413,6 +465,7 @@ export class GmailService {
413
465
  return labels.map((l) => nameToId.get(l.toLowerCase()) || l);
414
466
  }
415
467
  async createLabel(email, name, options = {}) {
468
+ this.ensureAnyScope(email, [GMAIL_LABELS_SCOPE], "creating labels");
416
469
  const gmail = this.getGmailClient(email);
417
470
  const requestBody = {
418
471
  name,
@@ -445,6 +498,7 @@ export class GmailService {
445
498
  };
446
499
  }
447
500
  async updateLabel(email, labelId, options) {
501
+ this.ensureAnyScope(email, [GMAIL_LABELS_SCOPE], "updating labels");
448
502
  const gmail = this.getGmailClient(email);
449
503
  const current = await gmail.users.labels.get({ userId: "me", id: labelId });
450
504
  const currentColor = current.data.color;
@@ -1 +1 @@
1
- {"version":3,"file":"gmail-service.js","sourceRoot":"","sources":["../src/gmail-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail-service.js","sourceRoot":"","sources":["../src/gmail-service.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export interface EmailAccount {
2
2
  email: string;
3
+ scopes?: string[];
3
4
  oauth2: {
4
5
  clientId: string;
5
6
  clientSecret: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smcllns/gmail",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Minimal Gmail CLI with restricted scopes for Claude Code and other agents",
5
5
  "type": "module",
6
6
  "bin": {