@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.
- package/CHANGELOG.md +82 -0
- package/README.md +48 -44
- package/dist/auth-flow.d.ts +50 -0
- package/dist/auth-flow.d.ts.map +1 -0
- package/dist/auth-flow.js +219 -0
- package/dist/auth-flow.js.map +1 -0
- package/dist/auth-server.d.ts +18 -0
- package/dist/auth-server.d.ts.map +1 -0
- package/dist/auth-server.js +327 -0
- package/dist/auth-server.js.map +1 -0
- package/dist/auth-store.d.ts +81 -0
- package/dist/auth-store.d.ts.map +1 -0
- package/dist/auth-store.js +185 -0
- package/dist/auth-store.js.map +1 -0
- package/dist/auth.d.ts +21 -15
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +90 -50
- package/dist/auth.js.map +1 -1
- package/dist/bin/calendar.js +69 -7
- package/dist/bin/calendar.js.map +1 -1
- package/dist/bin/drive.js +2 -0
- package/dist/bin/drive.js.map +1 -1
- package/dist/bin/easy.d.ts +11 -0
- package/dist/bin/easy.d.ts.map +1 -0
- package/dist/bin/easy.js +140 -0
- package/dist/bin/easy.js.map +1 -0
- package/dist/bin/gmail.d.ts +6 -1
- package/dist/bin/gmail.d.ts.map +1 -1
- package/dist/bin/gmail.js +85 -13
- package/dist/bin/gmail.js.map +1 -1
- package/dist/bin/tasks.d.ts +17 -0
- package/dist/bin/tasks.d.ts.map +1 -0
- package/dist/bin/tasks.js +190 -0
- package/dist/bin/tasks.js.map +1 -0
- package/dist/calendar/helpers.d.ts +13 -1
- package/dist/calendar/helpers.d.ts.map +1 -1
- package/dist/calendar/helpers.js +112 -3
- package/dist/calendar/helpers.js.map +1 -1
- package/dist/calendar/index.d.ts +2 -2
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +9 -1
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/types.d.ts +84 -0
- package/dist/calendar/types.d.ts.map +1 -1
- package/dist/calendar/types.js +7 -0
- package/dist/calendar/types.js.map +1 -1
- package/dist/errors.d.ts +24 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +22 -2
- package/dist/errors.js.map +1 -1
- package/dist/gmail/helpers.d.ts +19 -1
- package/dist/gmail/helpers.d.ts.map +1 -1
- package/dist/gmail/helpers.js +66 -11
- package/dist/gmail/helpers.js.map +1 -1
- package/dist/gmail/index.d.ts +14 -5
- package/dist/gmail/index.d.ts.map +1 -1
- package/dist/gmail/index.js +90 -20
- package/dist/gmail/index.js.map +1 -1
- package/dist/gmail/markdown.d.ts +22 -0
- package/dist/gmail/markdown.d.ts.map +1 -0
- package/dist/gmail/markdown.js +30 -0
- package/dist/gmail/markdown.js.map +1 -0
- package/dist/gmail/types.d.ts +19 -3
- package/dist/gmail/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/scopes.d.ts +16 -0
- package/dist/scopes.d.ts.map +1 -0
- package/dist/scopes.js +28 -0
- package/dist/scopes.js.map +1 -0
- package/dist/tasks/helpers.d.ts +10 -0
- package/dist/tasks/helpers.d.ts.map +1 -0
- package/dist/tasks/helpers.js +33 -0
- package/dist/tasks/helpers.js.map +1 -0
- package/dist/tasks/index.d.ts +63 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +253 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/types.d.ts +79 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +5 -0
- package/dist/tasks/types.js.map +1 -0
- package/package.json +33 -5
- package/skills/go-easy/SKILL.md +146 -0
- package/skills/go-easy/calendar.md +366 -0
- package/skills/go-easy/drive.md +309 -0
- package/skills/go-easy/gmail.md +478 -0
- 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
|
-
*
|
|
5
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
-
|
|
18
|
-
export type GoogleService
|
|
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
|
|
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
|
*/
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA
|
|
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
|
-
*
|
|
5
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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(
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
|
83
|
-
|
|
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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/calendar.js
CHANGED
|
@@ -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
|
}
|
package/dist/bin/calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/bin/calendar.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,SAAS,KAAK;IACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,2CAA2C;QACpD,QAAQ,EAAE;YACR,SAAS,EAAE,iCAAiC;YAC5C,MAAM,EAAE
|
|
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':
|
package/dist/bin/drive.js.map
CHANGED
|
@@ -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"}
|
package/dist/bin/easy.js
ADDED
|
@@ -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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"}
|