@marcfargas/go-easy 0.2.0 → 0.3.1

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 (90) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +48 -44
  3. package/dist/auth-flow.d.ts +50 -0
  4. package/dist/auth-flow.d.ts.map +1 -0
  5. package/dist/auth-flow.js +219 -0
  6. package/dist/auth-flow.js.map +1 -0
  7. package/dist/auth-server.d.ts +18 -0
  8. package/dist/auth-server.d.ts.map +1 -0
  9. package/dist/auth-server.js +327 -0
  10. package/dist/auth-server.js.map +1 -0
  11. package/dist/auth-store.d.ts +81 -0
  12. package/dist/auth-store.d.ts.map +1 -0
  13. package/dist/auth-store.js +185 -0
  14. package/dist/auth-store.js.map +1 -0
  15. package/dist/auth.d.ts +21 -15
  16. package/dist/auth.d.ts.map +1 -1
  17. package/dist/auth.js +90 -50
  18. package/dist/auth.js.map +1 -1
  19. package/dist/bin/calendar.js +69 -7
  20. package/dist/bin/calendar.js.map +1 -1
  21. package/dist/bin/drive.js +2 -0
  22. package/dist/bin/drive.js.map +1 -1
  23. package/dist/bin/easy.d.ts +11 -0
  24. package/dist/bin/easy.d.ts.map +1 -0
  25. package/dist/bin/easy.js +140 -0
  26. package/dist/bin/easy.js.map +1 -0
  27. package/dist/bin/gmail.d.ts +6 -1
  28. package/dist/bin/gmail.d.ts.map +1 -1
  29. package/dist/bin/gmail.js +85 -13
  30. package/dist/bin/gmail.js.map +1 -1
  31. package/dist/bin/tasks.d.ts +17 -0
  32. package/dist/bin/tasks.d.ts.map +1 -0
  33. package/dist/bin/tasks.js +190 -0
  34. package/dist/bin/tasks.js.map +1 -0
  35. package/dist/calendar/helpers.d.ts +13 -1
  36. package/dist/calendar/helpers.d.ts.map +1 -1
  37. package/dist/calendar/helpers.js +112 -3
  38. package/dist/calendar/helpers.js.map +1 -1
  39. package/dist/calendar/index.d.ts +2 -2
  40. package/dist/calendar/index.d.ts.map +1 -1
  41. package/dist/calendar/index.js +9 -1
  42. package/dist/calendar/index.js.map +1 -1
  43. package/dist/calendar/types.d.ts +84 -0
  44. package/dist/calendar/types.d.ts.map +1 -1
  45. package/dist/calendar/types.js +7 -0
  46. package/dist/calendar/types.js.map +1 -1
  47. package/dist/errors.d.ts +24 -0
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js +22 -2
  50. package/dist/errors.js.map +1 -1
  51. package/dist/gmail/helpers.d.ts +19 -1
  52. package/dist/gmail/helpers.d.ts.map +1 -1
  53. package/dist/gmail/helpers.js +66 -11
  54. package/dist/gmail/helpers.js.map +1 -1
  55. package/dist/gmail/index.d.ts +14 -5
  56. package/dist/gmail/index.d.ts.map +1 -1
  57. package/dist/gmail/index.js +90 -20
  58. package/dist/gmail/index.js.map +1 -1
  59. package/dist/gmail/markdown.d.ts +22 -0
  60. package/dist/gmail/markdown.d.ts.map +1 -0
  61. package/dist/gmail/markdown.js +30 -0
  62. package/dist/gmail/markdown.js.map +1 -0
  63. package/dist/gmail/types.d.ts +19 -3
  64. package/dist/gmail/types.d.ts.map +1 -1
  65. package/dist/index.d.ts +7 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +7 -2
  68. package/dist/index.js.map +1 -1
  69. package/dist/scopes.d.ts +16 -0
  70. package/dist/scopes.d.ts.map +1 -0
  71. package/dist/scopes.js +28 -0
  72. package/dist/scopes.js.map +1 -0
  73. package/dist/tasks/helpers.d.ts +10 -0
  74. package/dist/tasks/helpers.d.ts.map +1 -0
  75. package/dist/tasks/helpers.js +33 -0
  76. package/dist/tasks/helpers.js.map +1 -0
  77. package/dist/tasks/index.d.ts +63 -0
  78. package/dist/tasks/index.d.ts.map +1 -0
  79. package/dist/tasks/index.js +253 -0
  80. package/dist/tasks/index.js.map +1 -0
  81. package/dist/tasks/types.d.ts +79 -0
  82. package/dist/tasks/types.d.ts.map +1 -0
  83. package/dist/tasks/types.js +5 -0
  84. package/dist/tasks/types.js.map +1 -0
  85. package/package.json +33 -5
  86. package/skills/go-easy/SKILL.md +146 -0
  87. package/skills/go-easy/calendar.md +366 -0
  88. package/skills/go-easy/drive.md +309 -0
  89. package/skills/go-easy/gmail.md +478 -0
  90. package/skills/go-easy/tasks.md +260 -0
package/dist/auth.d.ts CHANGED
@@ -1,39 +1,45 @@
1
1
  /**
2
2
  * Auth module — OAuth2 client factory with multi-account support.
3
3
  *
4
- * Phase 1 (MVP): Import tokens from existing CLI stores:
5
- * ~/.gmcli/accounts.json → Gmail tokens
6
- * ~/.gdcli/accounts.json → Drive tokens
7
- * ~/.gccli/accounts.json → Calendar tokens
4
+ * Reads tokens from the unified store at ~/.go-easy/accounts.json.
5
+ * Falls back to legacy CLI stores (~/.gmcli, ~/.gdcli, ~/.gccli) via migration.
8
6
  *
9
- * Phase 2 (post-migration): Unified token store at ~/.go-easy/
10
- * with combined scopes per account (single OAuth consent).
11
- *
12
- * Each CLI token only works for its service's scopes. The library
13
- * routes internally — callers specify account (email), and each
14
- * service module gets the right OAuth2Client.
7
+ * Token resolution per account:
8
+ * 1. combined token (if it has the needed scope) → use it
9
+ * 2. per-service token (legacy migration) → use it
10
+ * 3. neither AUTH_MISSING_SCOPE with fix command
15
11
  */
16
12
  import { OAuth2Client } from 'google-auth-library';
17
- /** Services we can load tokens for */
18
- export type GoogleService = 'gmail' | 'drive' | 'calendar';
13
+ import type { GoogleService } from './auth-store.js';
14
+ export type { GoogleService } from './auth-store.js';
19
15
  /**
20
16
  * Get an OAuth2Client for a specific service and account.
21
17
  *
22
- * @param service - Which Google service (determines which CLI token to use)
18
+ * @param service - Which Google service (determines scope check)
23
19
  * @param account - Email address (defaults to first account in the store)
24
20
  * @returns Configured OAuth2Client with refresh token set
21
+ * @throws AuthError with specific code and fix command
25
22
  *
26
23
  * @example
27
24
  * ```ts
28
- * import { getAuth } from 'go-easy/auth';
25
+ * import { getAuth } from '@marcfargas/go-easy/auth';
29
26
  * const auth = await getAuth('gmail', 'marc@blegal.eu');
30
27
  * ```
31
28
  */
32
29
  export declare function getAuth(service: GoogleService, account?: string): Promise<OAuth2Client>;
33
30
  /**
34
- * List available accounts for a service.
31
+ * List available accounts (emails) for a service.
32
+ * Only returns accounts that have a token for the given service.
35
33
  */
36
34
  export declare function listAccounts(service: GoogleService): Promise<string[]>;
35
+ /**
36
+ * List all accounts regardless of service.
37
+ */
38
+ export declare function listAllAccounts(): Promise<Array<{
39
+ email: string;
40
+ scopes: string[];
41
+ source: string;
42
+ }>>;
37
43
  /**
38
44
  * Clear the client cache. Useful for tests or token rotation.
39
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAwC3D;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CA+BvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG5E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CA0DvB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAM5E;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAC9C,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAC3D,CAuBA;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
package/dist/auth.js CHANGED
@@ -1,86 +1,126 @@
1
1
  /**
2
2
  * Auth module — OAuth2 client factory with multi-account support.
3
3
  *
4
- * Phase 1 (MVP): Import tokens from existing CLI stores:
5
- * ~/.gmcli/accounts.json → Gmail tokens
6
- * ~/.gdcli/accounts.json → Drive tokens
7
- * ~/.gccli/accounts.json → Calendar tokens
4
+ * Reads tokens from the unified store at ~/.go-easy/accounts.json.
5
+ * Falls back to legacy CLI stores (~/.gmcli, ~/.gdcli, ~/.gccli) via migration.
8
6
  *
9
- * Phase 2 (post-migration): Unified token store at ~/.go-easy/
10
- * with combined scopes per account (single OAuth consent).
11
- *
12
- * Each CLI token only works for its service's scopes. The library
13
- * routes internally — callers specify account (email), and each
14
- * service module gets the right OAuth2Client.
7
+ * Token resolution per account:
8
+ * 1. combined token (if it has the needed scope) → use it
9
+ * 2. per-service token (legacy migration) → use it
10
+ * 3. neither AUTH_MISSING_SCOPE with fix command
15
11
  */
16
- import { readFile } from 'node:fs/promises';
17
- import { join } from 'node:path';
18
- import { homedir } from 'node:os';
19
12
  import { OAuth2Client } from 'google-auth-library';
20
13
  import { AuthError } from './errors.js';
21
- /** Map service CLI config directory name */
22
- const CLI_DIRS = {
23
- gmail: '.gmcli',
24
- drive: '.gdcli',
25
- calendar: '.gccli',
26
- };
14
+ import { readAccountStore, readCredentials, findAccount, resolveToken, } from './auth-store.js';
27
15
  /** Cache: "service:email" → OAuth2Client */
28
16
  const clientCache = new Map();
29
- /**
30
- * Load accounts from a CLI's accounts.json file.
31
- */
32
- async function loadCliAccounts(service) {
33
- const dir = CLI_DIRS[service];
34
- const accountsPath = join(homedir(), dir, 'accounts.json');
35
- try {
36
- const raw = await readFile(accountsPath, 'utf-8');
37
- return JSON.parse(raw);
38
- }
39
- catch (err) {
40
- throw new AuthError(`Cannot read ${service} accounts from ${accountsPath}. Is the CLI configured?`, err);
41
- }
42
- }
43
17
  /**
44
18
  * Get an OAuth2Client for a specific service and account.
45
19
  *
46
- * @param service - Which Google service (determines which CLI token to use)
20
+ * @param service - Which Google service (determines scope check)
47
21
  * @param account - Email address (defaults to first account in the store)
48
22
  * @returns Configured OAuth2Client with refresh token set
23
+ * @throws AuthError with specific code and fix command
49
24
  *
50
25
  * @example
51
26
  * ```ts
52
- * import { getAuth } from 'go-easy/auth';
27
+ * import { getAuth } from '@marcfargas/go-easy/auth';
53
28
  * const auth = await getAuth('gmail', 'marc@blegal.eu');
54
29
  * ```
55
30
  */
56
31
  export async function getAuth(service, account) {
57
- const accounts = await loadCliAccounts(service);
58
- const entry = account
59
- ? accounts.find((a) => a.email === account)
60
- : accounts[0];
32
+ // Try to load the store
33
+ let store = await readAccountStore();
34
+ if (!store) {
35
+ throw new AuthError('AUTH_NO_ACCOUNT', {
36
+ message: account
37
+ ? `Account "${account}" not configured`
38
+ : 'No accounts configured',
39
+ fix: account
40
+ ? `npx go-easy auth add ${account}`
41
+ : 'npx go-easy auth add <email>',
42
+ });
43
+ }
44
+ // Find the account
45
+ const entry = findAccount(store, account);
61
46
  if (!entry) {
62
- const available = accounts.map((a) => a.email).join(', ');
63
- throw new AuthError(account
64
- ? `Account "${account}" not found for ${service}. Available: ${available}`
65
- : `No accounts configured for ${service}`);
47
+ const available = store.accounts.map((a) => a.email).join(', ');
48
+ throw new AuthError('AUTH_NO_ACCOUNT', {
49
+ message: account
50
+ ? `Account "${account}" not found. Available: ${available}`
51
+ : 'No accounts configured',
52
+ fix: account
53
+ ? `npx go-easy auth add ${account}`
54
+ : 'npx go-easy auth add <email>',
55
+ });
66
56
  }
57
+ // Check cache
67
58
  const cacheKey = `${service}:${entry.email}`;
68
59
  const cached = clientCache.get(cacheKey);
69
60
  if (cached)
70
61
  return cached;
71
- const oauth2 = new OAuth2Client(entry.oauth2.clientId, entry.oauth2.clientSecret);
72
- oauth2.setCredentials({
73
- refresh_token: entry.oauth2.refreshToken,
74
- });
62
+ // Resolve token for the requested service
63
+ const token = resolveToken(entry, service);
64
+ if (!token) {
65
+ throw new AuthError('AUTH_MISSING_SCOPE', {
66
+ message: `No ${service} token for ${entry.email}`,
67
+ fix: `npx go-easy auth add ${entry.email}`,
68
+ });
69
+ }
70
+ // Load credentials
71
+ const creds = await readCredentials();
72
+ if (!creds) {
73
+ throw new AuthError('AUTH_NO_CREDENTIALS', {
74
+ message: 'OAuth client credentials not found at ~/.go-easy/credentials.json',
75
+ fix: 'npx go-easy auth add <email>',
76
+ });
77
+ }
78
+ // Build OAuth2Client
79
+ const oauth2 = new OAuth2Client(creds.clientId, creds.clientSecret);
80
+ oauth2.setCredentials({ refresh_token: token.refreshToken });
75
81
  clientCache.set(cacheKey, oauth2);
76
82
  return oauth2;
77
83
  }
78
84
  /**
79
- * List available accounts for a service.
85
+ * List available accounts (emails) for a service.
86
+ * Only returns accounts that have a token for the given service.
80
87
  */
81
88
  export async function listAccounts(service) {
82
- const accounts = await loadCliAccounts(service);
83
- return accounts.map((a) => a.email);
89
+ const store = await readAccountStore();
90
+ if (!store)
91
+ return [];
92
+ return store.accounts
93
+ .filter((a) => resolveToken(a, service) !== null)
94
+ .map((a) => a.email);
95
+ }
96
+ /**
97
+ * List all accounts regardless of service.
98
+ */
99
+ export async function listAllAccounts() {
100
+ const store = await readAccountStore();
101
+ if (!store)
102
+ return [];
103
+ return store.accounts.map((a) => {
104
+ if (a.tokens.combined) {
105
+ return {
106
+ email: a.email,
107
+ scopes: a.tokens.combined.scopes,
108
+ source: 'combined',
109
+ };
110
+ }
111
+ // Collect scopes from per-service tokens
112
+ const scopes = [];
113
+ for (const svc of ['gmail', 'drive', 'calendar']) {
114
+ const t = a.tokens[svc];
115
+ if (t)
116
+ scopes.push(...t.scopes);
117
+ }
118
+ return {
119
+ email: a.email,
120
+ scopes,
121
+ source: 'legacy',
122
+ };
123
+ });
84
124
  }
85
125
  /**
86
126
  * Clear the client cache. Useful for tests or token rotation.
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAexC,8CAA8C;AAC9C,MAAM,QAAQ,GAAkC;IAC9C,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,4CAA4C;AAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEpD;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,OAAsB;IACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CACjB,eAAe,OAAO,kBAAkB,YAAY,0BAA0B,EAC9E,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAsB,EACtB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,SAAS,CACjB,OAAO;YACL,CAAC,CAAC,YAAY,OAAO,mBAAmB,OAAO,gBAAgB,SAAS,EAAE;YAC1E,CAAC,CAAC,8BAA8B,OAAO,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,IAAI,YAAY,CAC7B,KAAK,CAAC,MAAM,CAAC,QAAQ,EACrB,KAAK,CAAC,MAAM,CAAC,YAAY,CAC1B,CAAC;IAEF,MAAM,CAAC,cAAc,CAAC;QACpB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;KACzC,CAAC,CAAC;IAEH,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -23,13 +23,20 @@ function usage() {
23
23
  message: 'go-calendar <account> <command> [args...]',
24
24
  commands: {
25
25
  calendars: 'go-calendar <account> calendars',
26
- events: 'go-calendar <account> events <calendarId> [--from=<dt>] [--to=<dt>] [--max=N] [--query="..."]',
26
+ events: 'go-calendar <account> events <calendarId> [--from=<dt>] [--to=<dt>] [--max=N] [--query="..."] [--event-types=default,outOfOffice,workingLocation,focusTime,birthday]',
27
27
  event: 'go-calendar <account> event <calendarId> <eventId>',
28
- create: 'go-calendar <account> create <calendarId> --summary="..." --start=<dt> --end=<dt> [--description="..."] [--location="..."] [--attendees=a@b,c@d] [--all-day] [--tz=<tz>]',
28
+ create: 'go-calendar <account> create <calendarId> --summary="..." --start=<dt> --end=<dt> [--description="..."] [--location="..."] [--attendees=a@b,c@d] [--all-day] [--tz=<tz>] [--type=outOfOffice|workingLocation|focusTime]',
29
+ 'create (ooo)': 'go-calendar <account> create <calendarId> --type=outOfOffice --summary="..." --start=<dt> --end=<dt> [--auto-decline=declineAllConflictingInvitations] [--decline-message="..."]',
30
+ 'create (wl)': 'go-calendar <account> create <calendarId> --type=workingLocation --summary="..." --start=<dt> --end=<dt> --wl-type=homeOffice|officeLocation|customLocation [--wl-label="..."] [--wl-building=...] [--wl-floor=...] [--wl-desk=...]',
31
+ 'create (focus)': 'go-calendar <account> create <calendarId> --type=focusTime --summary="..." --start=<dt> --end=<dt> [--auto-decline=declineAllConflictingInvitations] [--chat-status=doNotDisturb] [--decline-message="..."]',
29
32
  update: 'go-calendar <account> update <calendarId> <eventId> --summary="..." --start=<dt> --end=<dt> [--description="..."] [--location="..."] [--attendees=a@b,c@d] [--all-day] [--tz=<tz>]',
30
33
  delete: 'go-calendar <account> delete <calendarId> <eventId> [--confirm]',
31
34
  freebusy: 'go-calendar <account> freebusy <calendarId1,calendarId2> --from=<dt> --to=<dt>',
32
35
  },
36
+ eventTypes: {
37
+ description: 'Events are listed with all types by default. Use --event-types to filter.',
38
+ types: ['default (regular events)', 'outOfOffice', 'workingLocation', 'focusTime', 'birthday (read-only)'],
39
+ },
33
40
  }, null, 2));
34
41
  process.exit(1);
35
42
  }
@@ -48,6 +55,45 @@ function parseFlags(args) {
48
55
  function positional(args) {
49
56
  return args.filter((a) => !a.startsWith('--'));
50
57
  }
58
+ /** Build special event type properties from CLI flags */
59
+ function buildSpecialEventFlags(flags) {
60
+ const result = {};
61
+ if (flags.type === 'outOfOffice') {
62
+ result.outOfOffice = {
63
+ autoDeclineMode: flags['auto-decline'] ?? undefined,
64
+ declineMessage: flags['decline-message'] ?? undefined,
65
+ };
66
+ }
67
+ if (flags.type === 'focusTime') {
68
+ result.focusTime = {
69
+ autoDeclineMode: flags['auto-decline'] ?? undefined,
70
+ chatStatus: flags['chat-status'] ?? undefined,
71
+ declineMessage: flags['decline-message'] ?? undefined,
72
+ };
73
+ }
74
+ if (flags.type === 'workingLocation') {
75
+ const wlType = (flags['wl-type'] ?? 'homeOffice');
76
+ const wl = { type: wlType };
77
+ if (wlType === 'homeOffice') {
78
+ wl.homeOffice = true;
79
+ }
80
+ else if (wlType === 'officeLocation') {
81
+ wl.officeLocation = {
82
+ label: flags['wl-label'] ?? undefined,
83
+ buildingId: flags['wl-building'] ?? undefined,
84
+ floorId: flags['wl-floor'] ?? undefined,
85
+ deskId: flags['wl-desk'] ?? undefined,
86
+ };
87
+ }
88
+ else if (wlType === 'customLocation') {
89
+ wl.customLocation = {
90
+ label: flags['wl-label'] ?? undefined,
91
+ };
92
+ }
93
+ result.workingLocation = wl;
94
+ }
95
+ return result;
96
+ }
51
97
  async function main() {
52
98
  if (args.length < 2)
53
99
  usage();
@@ -88,6 +134,10 @@ async function main() {
88
134
  timeMax: flags.to,
89
135
  maxResults: flags.max ? parseInt(flags.max) : undefined,
90
136
  query: flags.query,
137
+ pageToken: flags['page-token'],
138
+ eventTypes: flags['event-types']
139
+ ? flags['event-types'].split(',')
140
+ : undefined,
91
141
  });
92
142
  break;
93
143
  case 'event':
@@ -107,6 +157,8 @@ async function main() {
107
157
  location: flags.location,
108
158
  attendees: flags.attendees?.split(','),
109
159
  allDay: 'all-day' in flags,
160
+ eventType: flags.type,
161
+ ...buildSpecialEventFlags(flags),
110
162
  };
111
163
  result = await calendar.createEvent(auth, pos[0], createOpts);
112
164
  break;
@@ -114,16 +166,26 @@ async function main() {
114
166
  case 'update': {
115
167
  if (!pos[0] || !pos[1])
116
168
  usage();
169
+ // Only include fields the user actually provided (PATCH semantics)
117
170
  const updateOpts = {
118
171
  summary: flags.summary ?? '',
119
- description: flags.description,
120
172
  start: flags.start ?? '',
121
173
  end: flags.end ?? '',
122
- timeZone: flags.tz,
123
- location: flags.location,
124
- attendees: flags.attendees?.split(','),
125
- allDay: 'all-day' in flags,
126
174
  };
175
+ if ('description' in flags)
176
+ updateOpts.description = flags.description;
177
+ if ('tz' in flags)
178
+ updateOpts.timeZone = flags.tz;
179
+ if ('location' in flags)
180
+ updateOpts.location = flags.location;
181
+ if ('attendees' in flags)
182
+ updateOpts.attendees = flags.attendees.split(',');
183
+ if ('all-day' in flags)
184
+ updateOpts.allDay = true;
185
+ if ('type' in flags) {
186
+ updateOpts.eventType = flags.type;
187
+ Object.assign(updateOpts, buildSpecialEventFlags(flags));
188
+ }
127
189
  result = await calendar.updateEvent(auth, pos[0], pos[1], updateOpts);
128
190
  break;
129
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/bin/calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/bin/calendar.ts"],"names":[],"mappings":"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"}
package/dist/bin/drive.js CHANGED
@@ -92,6 +92,7 @@ async function main() {
92
92
  query: flags.query,
93
93
  maxResults: flags.max ? parseInt(flags.max) : undefined,
94
94
  orderBy: flags.order,
95
+ pageToken: flags['page-token'],
95
96
  });
96
97
  break;
97
98
  case 'search':
@@ -100,6 +101,7 @@ async function main() {
100
101
  result = await drive.searchFiles(auth, {
101
102
  query: pos[0],
102
103
  maxResults: flags.max ? parseInt(flags.max) : undefined,
104
+ pageToken: flags['page-token'],
103
105
  });
104
106
  break;
105
107
  case 'get':
@@ -1 +1 @@
1
- {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/bin/drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/bin/drive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * go-easy — Umbrella CLI for cross-service operations.
4
+ *
5
+ * Usage:
6
+ * go-easy auth list — List configured accounts
7
+ * go-easy auth add <email> — Add or upgrade account (Phase 2)
8
+ * go-easy auth remove <email> --confirm — Remove account (Phase 3)
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=easy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easy.d.ts","sourceRoot":"","sources":["../../src/bin/easy.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * go-easy — Umbrella CLI for cross-service operations.
4
+ *
5
+ * Usage:
6
+ * go-easy auth list — List configured accounts
7
+ * go-easy auth add <email> — Add or upgrade account (Phase 2)
8
+ * go-easy auth remove <email> --confirm — Remove account (Phase 3)
9
+ */
10
+ import { listAllAccounts, clearAuthCache, } from '../auth.js';
11
+ import { readAccountStore, writeAccountStore, findAccount, removeAccount, } from '../auth-store.js';
12
+ import { authAdd as authAddFlow } from '../auth-flow.js';
13
+ import { GoEasyError } from '../errors.js';
14
+ const args = process.argv.slice(2);
15
+ function usage() {
16
+ console.log(JSON.stringify({
17
+ error: 'USAGE',
18
+ message: 'go-easy <command> [args...]',
19
+ commands: {
20
+ 'auth list': 'List configured accounts and their scopes',
21
+ 'auth add <email>': 'Add or upgrade an account (starts auth flow)',
22
+ 'auth remove <email> --confirm': 'Remove an account',
23
+ },
24
+ }));
25
+ process.exit(1);
26
+ }
27
+ /** Parse --key=value flags from args */
28
+ function parseFlags(argv) {
29
+ const flags = {};
30
+ for (const arg of argv) {
31
+ const m = arg.match(/^--([a-z-]+)(?:=(.*))?$/);
32
+ if (m)
33
+ flags[m[1]] = m[2] ?? 'true';
34
+ }
35
+ return flags;
36
+ }
37
+ /** Positional args (non-flag) */
38
+ function positionals(argv) {
39
+ return argv.filter((a) => !a.startsWith('--'));
40
+ }
41
+ async function main() {
42
+ if (args.length < 1)
43
+ usage();
44
+ const [group, subcommand, ...rest] = args;
45
+ if (group !== 'auth') {
46
+ usage();
47
+ }
48
+ switch (subcommand) {
49
+ case 'list':
50
+ await authList();
51
+ break;
52
+ case 'add':
53
+ await authAdd(rest);
54
+ break;
55
+ case 'remove':
56
+ await authRemove(rest);
57
+ break;
58
+ default:
59
+ usage();
60
+ }
61
+ }
62
+ // ─── auth list ─────────────────────────────────────────────
63
+ async function authList() {
64
+ const accounts = await listAllAccounts();
65
+ console.log(JSON.stringify({ accounts }, null, 2));
66
+ }
67
+ // ─── auth add ──────────────────────────────────────────────
68
+ async function authAdd(argv) {
69
+ const pos = positionals(argv);
70
+ const email = pos[0];
71
+ if (!email) {
72
+ console.log(JSON.stringify({
73
+ error: 'USAGE',
74
+ message: 'go-easy auth add <email>',
75
+ }));
76
+ process.exit(1);
77
+ }
78
+ const result = await authAddFlow(email);
79
+ console.log(JSON.stringify(result, null, 2));
80
+ }
81
+ // ─── auth remove ───────────────────────────────────────────
82
+ async function authRemove(argv) {
83
+ const pos = positionals(argv);
84
+ const flags = parseFlags(argv);
85
+ const email = pos[0];
86
+ if (!email) {
87
+ console.log(JSON.stringify({
88
+ error: 'USAGE',
89
+ message: 'go-easy auth remove <email> --confirm',
90
+ }));
91
+ process.exit(1);
92
+ }
93
+ const store = await readAccountStore();
94
+ if (!store) {
95
+ console.log(JSON.stringify({
96
+ error: 'AUTH_NO_ACCOUNT',
97
+ message: 'No accounts configured',
98
+ }));
99
+ process.exit(1);
100
+ }
101
+ const account = findAccount(store, email);
102
+ if (!account) {
103
+ console.log(JSON.stringify({
104
+ error: 'AUTH_NO_ACCOUNT',
105
+ message: `Account "${email}" not found`,
106
+ }));
107
+ process.exit(1);
108
+ }
109
+ // Safety gate
110
+ if (flags.confirm !== 'true') {
111
+ console.log(JSON.stringify({
112
+ blocked: true,
113
+ operation: 'go-easy.auth.remove',
114
+ description: `Remove account ${account.email} and all its tokens`,
115
+ hint: 'Add --confirm to execute',
116
+ }));
117
+ process.exit(2);
118
+ }
119
+ removeAccount(store, email);
120
+ await writeAccountStore(store);
121
+ clearAuthCache();
122
+ console.log(JSON.stringify({
123
+ ok: true,
124
+ removed: account.email,
125
+ }));
126
+ }
127
+ // ─── Main ──────────────────────────────────────────────────
128
+ main().catch((err) => {
129
+ if (err instanceof GoEasyError) {
130
+ console.error(JSON.stringify(err.toJSON()));
131
+ }
132
+ else {
133
+ console.error(JSON.stringify({
134
+ error: 'UNKNOWN',
135
+ message: err instanceof Error ? err.message : String(err),
136
+ }));
137
+ }
138
+ process.exit(1);
139
+ });
140
+ //# sourceMappingURL=easy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easy.js","sourceRoot":"","sources":["../../src/bin/easy.ts"],"names":[],"mappings":"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"}