zele 0.1.2 → 0.2.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/AGENTS.md +4 -0
- package/CHANGELOG.md +36 -0
- package/README.md +112 -0
- package/dist/api-utils.d.ts +6 -0
- package/dist/api-utils.js +52 -0
- package/dist/api-utils.js.map +1 -0
- package/dist/auth.d.ts +16 -0
- package/dist/auth.js +74 -5
- package/dist/auth.js.map +1 -1
- package/dist/calendar-client.d.ts +135 -0
- package/dist/calendar-client.js +498 -0
- package/dist/calendar-client.js.map +1 -0
- package/dist/calendar-time.d.ts +24 -0
- package/dist/calendar-time.js +245 -0
- package/dist/calendar-time.js.map +1 -0
- package/dist/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth-cmd.js +5 -5
- package/dist/commands/auth-cmd.js.map +1 -1
- package/dist/commands/calendar.d.ts +2 -0
- package/dist/commands/calendar.js +563 -0
- package/dist/commands/calendar.js.map +1 -0
- package/dist/generated/browser.d.ts +10 -0
- package/dist/generated/client.d.ts +10 -0
- package/dist/generated/internal/class.d.ts +22 -0
- package/dist/generated/internal/class.js +2 -2
- package/dist/generated/internal/class.js.map +1 -1
- package/dist/generated/internal/prismaNamespace.d.ts +174 -1
- package/dist/generated/internal/prismaNamespace.js +21 -0
- package/dist/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/generated/internal/prismaNamespaceBrowser.d.ts +23 -0
- package/dist/generated/internal/prismaNamespaceBrowser.js +21 -0
- package/dist/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/generated/models/accounts.d.ts +281 -0
- package/dist/generated/models/calendar_events.d.ts +1433 -0
- package/dist/generated/models/calendar_events.js +2 -0
- package/dist/generated/models/calendar_events.js.map +1 -0
- package/dist/generated/models/calendar_lists.d.ts +1131 -0
- package/dist/generated/models/calendar_lists.js +2 -0
- package/dist/generated/models/calendar_lists.js.map +1 -0
- package/dist/generated/models.d.ts +2 -0
- package/dist/gmail-cache.d.ts +22 -0
- package/dist/gmail-cache.js +76 -0
- package/dist/gmail-cache.js.map +1 -1
- package/dist/gmail-client.js +1 -48
- package/dist/gmail-client.js.map +1 -1
- package/dist/output.d.ts +11 -0
- package/dist/output.js +42 -0
- package/dist/output.js.map +1 -1
- package/package.json +4 -2
- package/schema.prisma +39 -6
- package/scripts/test-device-code-clients.ts +186 -0
- package/scripts/test-micropython-scopes.ts +72 -0
- package/scripts/test-oauth-clients.ts +257 -0
- package/src/api-utils.ts +60 -0
- package/src/auth.ts +92 -5
- package/src/calendar-client.ts +758 -0
- package/src/calendar-time.ts +299 -0
- package/src/cli.ts +5 -3
- package/src/commands/auth-cmd.ts +5 -5
- package/src/commands/calendar.ts +634 -0
- package/src/gmail-cache.ts +96 -0
- package/src/gmail-client.ts +1 -57
- package/src/output.ts +51 -0
- package/src/schema.sql +22 -0
package/AGENTS.md
CHANGED
|
@@ -17,6 +17,10 @@ all persistent state is stored in this DB via Prisma models:
|
|
|
17
17
|
- `profiles`: cached account profile data
|
|
18
18
|
- `sync_states`: misc per-account sync metadata (for example history IDs)
|
|
19
19
|
|
|
20
|
+
## changelog
|
|
21
|
+
|
|
22
|
+
keep `CHANGELOG.md` updated when making user-facing changes. bump the version in `package.json` and `src/cli.ts` together.
|
|
23
|
+
|
|
20
24
|
## migrations
|
|
21
25
|
|
|
22
26
|
`src/db.ts` runs `src/schema.sql` on startup (idempotent migration) so new tables/indexes are applied automatically on each CLI process start.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
- **Calendar:** Add comprehensive calendar commands (`cal list`, `events`, `get`, `create`, `update`, `delete`, `respond`, `freebusy`)
|
|
6
|
+
- **Calendar:** Use CalDAV protocol instead of Google REST API for better compatibility and efficiency
|
|
7
|
+
- **Calendar:** Add local caching for calendar lists and events
|
|
8
|
+
- **Auth:** Breaking change: `auth` namespace removed. Use `zele login`, `zele logout`, `zele whoami` directly
|
|
9
|
+
- **Docs:** Add comprehensive README with install, setup, and command reference
|
|
10
|
+
- **Fixes:** Improved error logging with stack traces
|
|
11
|
+
- **Internal:** Remove focus/ooo commands (use `cal create` instead)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 0.1.3
|
|
15
|
+
|
|
16
|
+
- Add CHANGELOG.md
|
|
17
|
+
- Add changelog guidance to AGENTS.md
|
|
18
|
+
|
|
19
|
+
## 0.1.2
|
|
20
|
+
|
|
21
|
+
- Replace monolithic `googleapis` with scoped `@googleapis/gmail` for smaller install size
|
|
22
|
+
|
|
23
|
+
## 0.1.1
|
|
24
|
+
|
|
25
|
+
- Rename package from `gtui` to `zele`
|
|
26
|
+
- Rename config directory `~/.gtui` to `~/.zele`, database `gtui.db` to `zele.db`
|
|
27
|
+
- Rename env vars `GTUI_CLIENT_ID`/`GTUI_CLIENT_SECRET` to `ZELE_CLIENT_ID`/`ZELE_CLIENT_SECRET`
|
|
28
|
+
- Style login flow with picocolors (bold steps, cyan URL, dim hints, yellow warnings)
|
|
29
|
+
|
|
30
|
+
## 0.1.0
|
|
31
|
+
|
|
32
|
+
- Initial release as `gtui`
|
|
33
|
+
- Multi-account Gmail CLI with OAuth2 authentication
|
|
34
|
+
- Commands: mail (list, search, read, send, reply, forward), drafts, labels, attachments, profile
|
|
35
|
+
- Prisma-backed SQLite cache with TTL-based expiry
|
|
36
|
+
- YAML output with TTY-aware coloring
|
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<div align='center'>
|
|
2
|
+
<br/>
|
|
3
|
+
<br/>
|
|
4
|
+
<h3>zele</h3>
|
|
5
|
+
<p>Manage emails & calendar from your terminal. For you and your agents</p>
|
|
6
|
+
<br/>
|
|
7
|
+
<br/>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
Multi-account Gmail and Google Calendar client with OAuth2 auth, SQLite cache, and YAML output.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g zele
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Setup
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
zele login
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Opens a browser for Google OAuth2. Repeat to add more accounts.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
zele whoami # show authenticated accounts
|
|
28
|
+
zele logout # remove credentials
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Commands
|
|
32
|
+
|
|
33
|
+
### Mail
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
zele mail list # list recent threads
|
|
37
|
+
zele mail search "from:github" # search with Gmail query syntax
|
|
38
|
+
zele mail read <thread-id> # read a thread
|
|
39
|
+
zele mail send # send an email
|
|
40
|
+
zele mail reply <thread-id> # reply to a thread
|
|
41
|
+
zele mail forward <thread-id> # forward a thread
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Mail actions
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
zele mail star <thread-id>
|
|
48
|
+
zele mail unstar <thread-id>
|
|
49
|
+
zele mail archive <thread-id>
|
|
50
|
+
zele mail trash <thread-id>
|
|
51
|
+
zele mail untrash <thread-id>
|
|
52
|
+
zele mail read-mark <thread-id>
|
|
53
|
+
zele mail unread-mark <thread-id>
|
|
54
|
+
zele mail label <thread-id>
|
|
55
|
+
zele mail trash-spam
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Drafts
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
zele draft list
|
|
62
|
+
zele draft create
|
|
63
|
+
zele draft send <draft-id>
|
|
64
|
+
zele draft delete <draft-id>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Labels
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
zele label list
|
|
71
|
+
zele label counts
|
|
72
|
+
zele label create <name>
|
|
73
|
+
zele label delete <label-id>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Calendar
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
zele cal list # list calendars
|
|
80
|
+
zele cal events # upcoming events
|
|
81
|
+
zele cal get <event-id> # event details
|
|
82
|
+
zele cal create # create an event
|
|
83
|
+
zele cal update <event-id> # update an event
|
|
84
|
+
zele cal delete <event-id> # delete an event
|
|
85
|
+
zele cal respond <event-id> # accept/decline
|
|
86
|
+
zele cal freebusy # check availability
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Attachments
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
zele attachment list <message-id>
|
|
93
|
+
zele attachment get <message-id> <attachment-id>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Profile
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
zele profile # show account info
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Multi-account
|
|
103
|
+
|
|
104
|
+
All commands support `--account <email>` to filter by account. Without it, commands fetch from all accounts and merge results.
|
|
105
|
+
|
|
106
|
+
## Output
|
|
107
|
+
|
|
108
|
+
All structured data is output as YAML. In TTY mode, keys are colored for readability. Pipe output to other tools for scripting.
|
|
109
|
+
|
|
110
|
+
## License
|
|
111
|
+
|
|
112
|
+
ISC
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Run promises with bounded concurrency */
|
|
2
|
+
export declare function mapConcurrent<T, R>(items: T[], fn: (item: T) => Promise<R>, concurrency?: number): Promise<R[]>;
|
|
3
|
+
/** Simple retry for rate limit errors (429 and 403 quota errors).
|
|
4
|
+
* Matches Zero's gmail-rate-limit.ts schedule: up to 10 attempts, 60s base delay. */
|
|
5
|
+
export declare function withRetry<T>(fn: () => Promise<T>, maxAttempts?: number, delayMs?: number): Promise<T>;
|
|
6
|
+
export declare function isRateLimitError(err: any): boolean;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Shared API utilities for Gmail and Calendar clients.
|
|
2
|
+
// Retry logic for rate limit errors and bounded concurrency helper.
|
|
3
|
+
// Extracted from gmail-client.ts to be reused across API clients.
|
|
4
|
+
const MAX_CONCURRENCY = 10;
|
|
5
|
+
/** Run promises with bounded concurrency */
|
|
6
|
+
export async function mapConcurrent(items, fn, concurrency = MAX_CONCURRENCY) {
|
|
7
|
+
const results = [];
|
|
8
|
+
let index = 0;
|
|
9
|
+
async function worker() {
|
|
10
|
+
while (index < items.length) {
|
|
11
|
+
const i = index++;
|
|
12
|
+
results[i] = await fn(items[i]);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const workers = Array.from({ length: Math.min(concurrency, items.length) }, () => worker());
|
|
16
|
+
await Promise.all(workers);
|
|
17
|
+
return results;
|
|
18
|
+
}
|
|
19
|
+
/** Simple retry for rate limit errors (429 and 403 quota errors).
|
|
20
|
+
* Matches Zero's gmail-rate-limit.ts schedule: up to 10 attempts, 60s base delay. */
|
|
21
|
+
export async function withRetry(fn, maxAttempts = 10, delayMs = 60000) {
|
|
22
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
23
|
+
try {
|
|
24
|
+
return await fn();
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
if (!isRateLimitError(err) || attempt === maxAttempts)
|
|
28
|
+
throw err;
|
|
29
|
+
const wait = delayMs * Math.pow(2, attempt - 1);
|
|
30
|
+
await new Promise((r) => setTimeout(r, wait));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
throw new Error('unreachable');
|
|
34
|
+
}
|
|
35
|
+
export function isRateLimitError(err) {
|
|
36
|
+
const status = err?.code ?? err?.status ?? err?.response?.status;
|
|
37
|
+
if (status === 429)
|
|
38
|
+
return true;
|
|
39
|
+
if (status === 403) {
|
|
40
|
+
const errors = err?.errors ?? err?.response?.data?.error?.errors ?? [];
|
|
41
|
+
return errors.some((e) => [
|
|
42
|
+
'userRateLimitExceeded',
|
|
43
|
+
'rateLimitExceeded',
|
|
44
|
+
'quotaExceeded',
|
|
45
|
+
'dailyLimitExceeded',
|
|
46
|
+
'limitExceeded',
|
|
47
|
+
'backendError',
|
|
48
|
+
].includes(e.reason));
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=api-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-utils.js","sourceRoot":"","sources":["../src/api-utils.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,oEAAoE;AACpE,kEAAkE;AAElE,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAU,EACV,EAA2B,EAC3B,WAAW,GAAG,eAAe;IAE7B,MAAM,OAAO,GAAQ,EAAE,CAAA;IACvB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,UAAU,MAAM;QACnB,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,KAAK,EAAE,CAAA;YACjB,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3F,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;sFACsF;AACtF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,EAAoB,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK;IACxF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAM,GAAG,CAAA;YAChE,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;YAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAA;IAChE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAC/B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAA;QACtE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAC5B;YACE,uBAAuB;YACvB,mBAAmB;YACnB,eAAe;YACf,oBAAoB;YACpB,eAAe;YACf,cAAc;SACf,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CACrB,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/dist/auth.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OAuth2Client } from 'google-auth-library';
|
|
2
2
|
import { GmailClient } from './gmail-client.js';
|
|
3
|
+
import { CalendarClient } from './calendar-client.js';
|
|
3
4
|
export declare function createOAuth2Client(): OAuth2Client;
|
|
4
5
|
/**
|
|
5
6
|
* Run the full browser OAuth flow and save the account to the DB.
|
|
@@ -27,6 +28,21 @@ export declare function getClient(accounts?: string[]): Promise<{
|
|
|
27
28
|
email: string;
|
|
28
29
|
client: GmailClient;
|
|
29
30
|
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Get authenticated CalendarClient instances for all accounts (or filtered by email list).
|
|
33
|
+
*/
|
|
34
|
+
export declare function getCalendarClients(accounts?: string[]): Promise<Array<{
|
|
35
|
+
email: string;
|
|
36
|
+
client: CalendarClient;
|
|
37
|
+
}>>;
|
|
38
|
+
/**
|
|
39
|
+
* Get a single authenticated CalendarClient. Errors if multiple accounts exist
|
|
40
|
+
* and no --account filter was provided.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getCalendarClient(accounts?: string[]): Promise<{
|
|
43
|
+
email: string;
|
|
44
|
+
client: CalendarClient;
|
|
45
|
+
}>;
|
|
30
46
|
export interface AuthStatus {
|
|
31
47
|
email: string;
|
|
32
48
|
expiresAt?: Date;
|
package/dist/auth.js
CHANGED
|
@@ -15,14 +15,43 @@ import fkill from 'fkill';
|
|
|
15
15
|
import pc from 'picocolors';
|
|
16
16
|
import { getPrisma } from './db.js';
|
|
17
17
|
import { GmailClient } from './gmail-client.js';
|
|
18
|
+
import { CalendarClient } from './calendar-client.js';
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
// Config
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
21
22
|
const ZELE_DIR = path.join(os.homedir(), '.zele');
|
|
22
23
|
const LEGACY_TOKENS_FILE = path.join(ZELE_DIR, 'tokens.json');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Known open-source Google OAuth clients (Desktop app type).
|
|
26
|
+
// All support localhost + OOB redirects. All have Gmail, Calendar, Drive,
|
|
27
|
+
// Contacts, Tasks, and other Google API scopes enabled.
|
|
28
|
+
// None support device code flow (requires "TVs and Limited Input" client type,
|
|
29
|
+
// which Google restricts — Gmail scopes are blocked from device code entirely).
|
|
30
|
+
// Source: public open-source repos, tested 2026-02-09.
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
const OAUTH_CLIENTS = {
|
|
33
|
+
// Mozilla Thunderbird — largest user base, highest Google quota.
|
|
34
|
+
// Source: searchfox.org/comm-central/source/mailnews/base/src/OAuth2Providers.sys.mjs
|
|
35
|
+
thunderbird: {
|
|
36
|
+
clientId: '406964657835-aq8lmia8j95dhl1a2bvharmfk3t1hgqj.apps.googleusercontent.com',
|
|
37
|
+
clientSecret: 'kSmqreRr0qwBWJgbf5Y-PjSU',
|
|
38
|
+
},
|
|
39
|
+
// GNOME Online Accounts — used by Evolution, GNOME Calendar, Nautilus (Drive).
|
|
40
|
+
// Source: github.com/GNOME/gnome-online-accounts/blob/master/meson_options.txt
|
|
41
|
+
gnome: {
|
|
42
|
+
clientId: '44438659992-7kgjeitenc16ssihbtdjbgguch7ju55s.apps.googleusercontent.com',
|
|
43
|
+
clientSecret: '-gMLuQyDiI0XrQS_vx_mhuYF',
|
|
44
|
+
},
|
|
45
|
+
// KDE KAccounts — used by KMail, KOrganizer, Kontact.
|
|
46
|
+
// Source: github.com/KDE/kaccounts-providers google.provider.in
|
|
47
|
+
kde: {
|
|
48
|
+
clientId: '317066460457-pkpkedrvt2ldq6g2hj1egfka2n7vpuoo.apps.googleusercontent.com',
|
|
49
|
+
clientSecret: 'Y8eFAaWfcanV3amZdDvtbYUq',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
const ACTIVE_CLIENT = OAUTH_CLIENTS.thunderbird;
|
|
53
|
+
const CLIENT_ID = process.env.ZELE_CLIENT_ID ?? ACTIVE_CLIENT.clientId;
|
|
54
|
+
const CLIENT_SECRET = process.env.ZELE_CLIENT_SECRET ?? ACTIVE_CLIENT.clientSecret;
|
|
26
55
|
const REDIRECT_PORT = 8089;
|
|
27
56
|
const SCOPES = [
|
|
28
57
|
'https://mail.google.com/', // Gmail (full)
|
|
@@ -225,7 +254,7 @@ async function authenticateAccount(email) {
|
|
|
225
254
|
const prisma = await getPrisma();
|
|
226
255
|
const row = await prisma.accounts.findUnique({ where: { email } });
|
|
227
256
|
if (!row) {
|
|
228
|
-
throw new Error(`No account found for ${email}. Run: zele
|
|
257
|
+
throw new Error(`No account found for ${email}. Run: zele login`);
|
|
229
258
|
}
|
|
230
259
|
const tokens = JSON.parse(row.tokens);
|
|
231
260
|
const oauth2Client = createOAuth2Client();
|
|
@@ -252,7 +281,7 @@ export async function getClients(accounts) {
|
|
|
252
281
|
await migrateLegacyTokens();
|
|
253
282
|
const allEmails = await listAccounts();
|
|
254
283
|
if (allEmails.length === 0) {
|
|
255
|
-
throw new Error('No accounts registered. Run: zele
|
|
284
|
+
throw new Error('No accounts registered. Run: zele login');
|
|
256
285
|
}
|
|
257
286
|
const emails = accounts && accounts.length > 0
|
|
258
287
|
? allEmails.filter((e) => accounts.includes(e))
|
|
@@ -279,6 +308,46 @@ export async function getClient(accounts) {
|
|
|
279
308
|
const emails = clients.map((c) => c.email).join('\n ');
|
|
280
309
|
throw new Error(`Multiple accounts matched. Specify --account:\n ${emails}`);
|
|
281
310
|
}
|
|
311
|
+
// ---------------------------------------------------------------------------
|
|
312
|
+
// Calendar client helpers
|
|
313
|
+
// ---------------------------------------------------------------------------
|
|
314
|
+
/**
|
|
315
|
+
* Get authenticated CalendarClient instances for all accounts (or filtered by email list).
|
|
316
|
+
*/
|
|
317
|
+
export async function getCalendarClients(accounts) {
|
|
318
|
+
await migrateLegacyTokens();
|
|
319
|
+
const allEmails = await listAccounts();
|
|
320
|
+
if (allEmails.length === 0) {
|
|
321
|
+
throw new Error('No accounts registered. Run: zele login');
|
|
322
|
+
}
|
|
323
|
+
const emails = accounts && accounts.length > 0
|
|
324
|
+
? allEmails.filter((e) => accounts.includes(e))
|
|
325
|
+
: allEmails;
|
|
326
|
+
if (emails.length === 0) {
|
|
327
|
+
const available = allEmails.join(', ');
|
|
328
|
+
throw new Error(`No matching accounts. Available: ${available}`);
|
|
329
|
+
}
|
|
330
|
+
const results = await Promise.all(emails.map(async (email) => {
|
|
331
|
+
const auth = await authenticateAccount(email);
|
|
332
|
+
const { token } = await auth.getAccessToken();
|
|
333
|
+
if (!token)
|
|
334
|
+
throw new Error(`Failed to get access token for ${email}`);
|
|
335
|
+
return { email, client: new CalendarClient({ accessToken: token, email }) };
|
|
336
|
+
}));
|
|
337
|
+
return results;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Get a single authenticated CalendarClient. Errors if multiple accounts exist
|
|
341
|
+
* and no --account filter was provided.
|
|
342
|
+
*/
|
|
343
|
+
export async function getCalendarClient(accounts) {
|
|
344
|
+
const clients = await getCalendarClients(accounts);
|
|
345
|
+
if (clients.length === 1) {
|
|
346
|
+
return clients[0];
|
|
347
|
+
}
|
|
348
|
+
const emails = clients.map((c) => c.email).join('\n ');
|
|
349
|
+
throw new Error(`Multiple accounts matched. Specify --account:\n ${emails}`);
|
|
350
|
+
}
|
|
282
351
|
export async function getAuthStatuses() {
|
|
283
352
|
await migrateLegacyTokens();
|
|
284
353
|
const prisma = await getPrisma();
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
export interface CalendarListItem {
|
|
2
|
+
id: string;
|
|
3
|
+
summary: string;
|
|
4
|
+
primary: boolean;
|
|
5
|
+
role: string;
|
|
6
|
+
timezone: string;
|
|
7
|
+
backgroundColor: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CalendarEvent {
|
|
10
|
+
id: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
start: string;
|
|
13
|
+
end: string;
|
|
14
|
+
startDate?: string;
|
|
15
|
+
endDate?: string;
|
|
16
|
+
allDay: boolean;
|
|
17
|
+
description: string;
|
|
18
|
+
location: string;
|
|
19
|
+
status: string;
|
|
20
|
+
htmlLink: string;
|
|
21
|
+
meetLink: string | null;
|
|
22
|
+
attendees: CalendarAttendee[];
|
|
23
|
+
recurrence: string[];
|
|
24
|
+
reminders: CalendarReminder[];
|
|
25
|
+
colorId: string | null;
|
|
26
|
+
visibility: string;
|
|
27
|
+
transparency: string;
|
|
28
|
+
calendarId?: string;
|
|
29
|
+
url?: string;
|
|
30
|
+
etag?: string;
|
|
31
|
+
uid?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface CalendarAttendee {
|
|
34
|
+
email: string;
|
|
35
|
+
name: string | null;
|
|
36
|
+
status: string;
|
|
37
|
+
self: boolean;
|
|
38
|
+
organizer: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface CalendarReminder {
|
|
41
|
+
method: string;
|
|
42
|
+
minutes: number;
|
|
43
|
+
}
|
|
44
|
+
export interface EventListResult {
|
|
45
|
+
events: CalendarEvent[];
|
|
46
|
+
nextPageToken: string | null;
|
|
47
|
+
timezone: string;
|
|
48
|
+
}
|
|
49
|
+
export interface FreeBusyBlock {
|
|
50
|
+
start: string;
|
|
51
|
+
end: string;
|
|
52
|
+
}
|
|
53
|
+
export interface FreeBusyResult {
|
|
54
|
+
calendar: string;
|
|
55
|
+
busy: FreeBusyBlock[];
|
|
56
|
+
}
|
|
57
|
+
export declare class CalendarClient {
|
|
58
|
+
private headers;
|
|
59
|
+
private email;
|
|
60
|
+
private calendarCache;
|
|
61
|
+
private timezoneCache;
|
|
62
|
+
constructor({ accessToken, email }: {
|
|
63
|
+
accessToken: string;
|
|
64
|
+
email: string;
|
|
65
|
+
});
|
|
66
|
+
/** Update the access token (e.g. after refresh) */
|
|
67
|
+
updateAccessToken(token: string): void;
|
|
68
|
+
private fetchDAVCalendars;
|
|
69
|
+
/** Resolve a calendarId to a DAVCalendar. 'primary' maps to the user's email. */
|
|
70
|
+
private resolveCalendar;
|
|
71
|
+
listCalendars(): Promise<CalendarListItem[]>;
|
|
72
|
+
getTimezone(calendarId?: string): Promise<string>;
|
|
73
|
+
listEvents({ calendarId, timeMin, timeMax, query, maxResults, pageToken, }?: {
|
|
74
|
+
calendarId?: string;
|
|
75
|
+
timeMin?: string;
|
|
76
|
+
timeMax?: string;
|
|
77
|
+
query?: string;
|
|
78
|
+
maxResults?: number;
|
|
79
|
+
pageToken?: string;
|
|
80
|
+
}): Promise<EventListResult>;
|
|
81
|
+
getEvent({ calendarId, eventId, }: {
|
|
82
|
+
calendarId?: string;
|
|
83
|
+
eventId: string;
|
|
84
|
+
}): Promise<CalendarEvent>;
|
|
85
|
+
createEvent({ calendarId, summary, start, end, allDay, description, location, attendees, withMeet, recurrence, reminders, colorId, visibility, transparency, }: {
|
|
86
|
+
calendarId?: string;
|
|
87
|
+
summary: string;
|
|
88
|
+
start: string;
|
|
89
|
+
end: string;
|
|
90
|
+
allDay?: boolean;
|
|
91
|
+
description?: string;
|
|
92
|
+
location?: string;
|
|
93
|
+
attendees?: string[];
|
|
94
|
+
withMeet?: boolean;
|
|
95
|
+
recurrence?: string[];
|
|
96
|
+
reminders?: Array<{
|
|
97
|
+
method: string;
|
|
98
|
+
minutes: number;
|
|
99
|
+
}>;
|
|
100
|
+
colorId?: string;
|
|
101
|
+
visibility?: string;
|
|
102
|
+
transparency?: string;
|
|
103
|
+
}): Promise<CalendarEvent>;
|
|
104
|
+
updateEvent({ calendarId, eventId, summary, start, end, allDay, description, location, addAttendees, removeAttendees, withMeet, colorId, visibility, transparency, }: {
|
|
105
|
+
calendarId?: string;
|
|
106
|
+
eventId: string;
|
|
107
|
+
summary?: string;
|
|
108
|
+
start?: string;
|
|
109
|
+
end?: string;
|
|
110
|
+
allDay?: boolean;
|
|
111
|
+
description?: string;
|
|
112
|
+
location?: string;
|
|
113
|
+
addAttendees?: string[];
|
|
114
|
+
removeAttendees?: string[];
|
|
115
|
+
withMeet?: boolean;
|
|
116
|
+
colorId?: string;
|
|
117
|
+
visibility?: string;
|
|
118
|
+
transparency?: string;
|
|
119
|
+
}): Promise<CalendarEvent>;
|
|
120
|
+
deleteEvent({ calendarId, eventId, }: {
|
|
121
|
+
calendarId?: string;
|
|
122
|
+
eventId: string;
|
|
123
|
+
}): Promise<void>;
|
|
124
|
+
respondToEvent({ calendarId, eventId, status, comment, }: {
|
|
125
|
+
calendarId?: string;
|
|
126
|
+
eventId: string;
|
|
127
|
+
status: 'accepted' | 'declined' | 'tentative';
|
|
128
|
+
comment?: string;
|
|
129
|
+
}): Promise<CalendarEvent>;
|
|
130
|
+
getFreeBusy({ calendarIds, timeMin, timeMax, }: {
|
|
131
|
+
calendarIds: string[];
|
|
132
|
+
timeMin: string;
|
|
133
|
+
timeMax: string;
|
|
134
|
+
}): Promise<FreeBusyResult[]>;
|
|
135
|
+
}
|