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.
Files changed (65) hide show
  1. package/AGENTS.md +4 -0
  2. package/CHANGELOG.md +36 -0
  3. package/README.md +112 -0
  4. package/dist/api-utils.d.ts +6 -0
  5. package/dist/api-utils.js +52 -0
  6. package/dist/api-utils.js.map +1 -0
  7. package/dist/auth.d.ts +16 -0
  8. package/dist/auth.js +74 -5
  9. package/dist/auth.js.map +1 -1
  10. package/dist/calendar-client.d.ts +135 -0
  11. package/dist/calendar-client.js +498 -0
  12. package/dist/calendar-client.js.map +1 -0
  13. package/dist/calendar-time.d.ts +24 -0
  14. package/dist/calendar-time.js +245 -0
  15. package/dist/calendar-time.js.map +1 -0
  16. package/dist/cli.js +5 -3
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/auth-cmd.js +5 -5
  19. package/dist/commands/auth-cmd.js.map +1 -1
  20. package/dist/commands/calendar.d.ts +2 -0
  21. package/dist/commands/calendar.js +563 -0
  22. package/dist/commands/calendar.js.map +1 -0
  23. package/dist/generated/browser.d.ts +10 -0
  24. package/dist/generated/client.d.ts +10 -0
  25. package/dist/generated/internal/class.d.ts +22 -0
  26. package/dist/generated/internal/class.js +2 -2
  27. package/dist/generated/internal/class.js.map +1 -1
  28. package/dist/generated/internal/prismaNamespace.d.ts +174 -1
  29. package/dist/generated/internal/prismaNamespace.js +21 -0
  30. package/dist/generated/internal/prismaNamespace.js.map +1 -1
  31. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +23 -0
  32. package/dist/generated/internal/prismaNamespaceBrowser.js +21 -0
  33. package/dist/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  34. package/dist/generated/models/accounts.d.ts +281 -0
  35. package/dist/generated/models/calendar_events.d.ts +1433 -0
  36. package/dist/generated/models/calendar_events.js +2 -0
  37. package/dist/generated/models/calendar_events.js.map +1 -0
  38. package/dist/generated/models/calendar_lists.d.ts +1131 -0
  39. package/dist/generated/models/calendar_lists.js +2 -0
  40. package/dist/generated/models/calendar_lists.js.map +1 -0
  41. package/dist/generated/models.d.ts +2 -0
  42. package/dist/gmail-cache.d.ts +22 -0
  43. package/dist/gmail-cache.js +76 -0
  44. package/dist/gmail-cache.js.map +1 -1
  45. package/dist/gmail-client.js +1 -48
  46. package/dist/gmail-client.js.map +1 -1
  47. package/dist/output.d.ts +11 -0
  48. package/dist/output.js +42 -0
  49. package/dist/output.js.map +1 -1
  50. package/package.json +4 -2
  51. package/schema.prisma +39 -6
  52. package/scripts/test-device-code-clients.ts +186 -0
  53. package/scripts/test-micropython-scopes.ts +72 -0
  54. package/scripts/test-oauth-clients.ts +257 -0
  55. package/src/api-utils.ts +60 -0
  56. package/src/auth.ts +92 -5
  57. package/src/calendar-client.ts +758 -0
  58. package/src/calendar-time.ts +299 -0
  59. package/src/cli.ts +5 -3
  60. package/src/commands/auth-cmd.ts +5 -5
  61. package/src/commands/calendar.ts +634 -0
  62. package/src/gmail-cache.ts +96 -0
  63. package/src/gmail-client.ts +1 -57
  64. package/src/output.ts +51 -0
  65. 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
- const CLIENT_ID = process.env.ZELE_CLIENT_ID ??
24
- '406964657835-aq8lmia8j95dhl1a2bvharmfk3t1hgqj.apps.googleusercontent.com';
25
- const CLIENT_SECRET = process.env.ZELE_CLIENT_SECRET ?? 'kSmqreRr0qwBWJgbf5Y-PjSU';
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 auth login`);
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 auth login');
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
+ }