@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 +68 -12
- package/dist/account-storage.d.ts +7 -1
- package/dist/account-storage.d.ts.map +1 -1
- package/dist/account-storage.js +37 -18
- package/dist/account-storage.js.map +1 -1
- package/dist/cli.js +91 -27
- package/dist/cli.js.map +1 -1
- package/dist/gmail-oauth-flow.d.ts +15 -1
- package/dist/gmail-oauth-flow.d.ts.map +1 -1
- package/dist/gmail-oauth-flow.js +29 -12
- package/dist/gmail-oauth-flow.js.map +1 -1
- package/dist/gmail-service.d.ts +10 -2
- package/dist/gmail-service.d.ts.map +1 -1
- package/dist/gmail-service.js +67 -13
- package/dist/gmail-service.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/account-storage.js
CHANGED
|
@@ -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
|
|
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(
|
|
16
|
-
|
|
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(
|
|
26
|
+
if (fs.existsSync(this.accountsFile)) {
|
|
21
27
|
try {
|
|
22
|
-
const data = JSON.parse(fs.readFileSync(
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
77
|
+
if (!fs.existsSync(this.credentialsFile))
|
|
59
78
|
return null;
|
|
60
79
|
try {
|
|
61
|
-
return JSON.parse(fs.readFileSync(
|
|
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
|
-
|
|
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
|
-
|
|
98
|
+
this.writeJsonFileAtomic(this.configFile, config);
|
|
80
99
|
}
|
|
81
100
|
loadConfig() {
|
|
82
|
-
if (!fs.existsSync(
|
|
101
|
+
if (!fs.existsSync(this.configFile))
|
|
83
102
|
return {};
|
|
84
103
|
try {
|
|
85
|
-
return JSON.parse(fs.readFileSync(
|
|
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":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,
|
|
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
|
-
|
|
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>
|
|
26
|
-
gmail accounts list
|
|
27
|
-
gmail accounts add <email> [--manual]
|
|
28
|
-
gmail accounts
|
|
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
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
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
|
-
|
|
246
|
-
|
|
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
|
|
307
|
-
const subject = msg?.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
|
-
|
|
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":"
|
|
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"}
|
package/dist/gmail-oauth-flow.js
CHANGED
|
@@ -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
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"gmail-oauth-flow.js","sourceRoot":"","sources":["../src/gmail-oauth-flow.ts"],"names":[],"mappings":"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"}
|
package/dist/gmail-service.d.ts
CHANGED
|
@@ -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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"gmail-service.d.ts","sourceRoot":"","sources":["../src/gmail-service.ts"],"names":[],"mappings":"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"}
|
package/dist/gmail-service.js
CHANGED
|
@@ -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
|
|
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.
|
|
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
|
|
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
|
|
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
package/dist/types.d.ts.map
CHANGED
|
@@ -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"}
|