zele 0.1.3 → 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/CHANGELOG.md +11 -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
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
// Time parsing utilities for calendar commands.
|
|
2
|
+
// Resolves human-friendly time expressions (today, tomorrow, monday, +1h)
|
|
3
|
+
// into RFC3339 timestamps in the user's calendar timezone.
|
|
4
|
+
// All relative expressions are resolved against the calendar timezone, not system time.
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Weekday lookup
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
const WEEKDAYS = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
|
|
9
|
+
function findNextWeekday(name, from, tz) {
|
|
10
|
+
const target = WEEKDAYS.indexOf(name.toLowerCase());
|
|
11
|
+
if (target === -1)
|
|
12
|
+
throw new Error(`Unknown weekday: ${name}`);
|
|
13
|
+
const current = getWeekdayInTz(from, tz);
|
|
14
|
+
let daysAhead = target - current;
|
|
15
|
+
if (daysAhead <= 0)
|
|
16
|
+
daysAhead += 7;
|
|
17
|
+
const result = new Date(from);
|
|
18
|
+
result.setDate(result.getDate() + daysAhead);
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
function getWeekdayInTz(date, tz) {
|
|
22
|
+
const str = date.toLocaleDateString('en-US', { timeZone: tz, weekday: 'short' });
|
|
23
|
+
const map = { Sun: 0, Mon: 1, Tue: 2, Wed: 3, Thu: 4, Fri: 5, Sat: 6 };
|
|
24
|
+
return map[str] ?? 0;
|
|
25
|
+
}
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Timezone helpers
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/** Get current date/time components in a specific timezone */
|
|
30
|
+
function nowInTz(tz) {
|
|
31
|
+
const now = new Date();
|
|
32
|
+
const parts = new Intl.DateTimeFormat('en-US', {
|
|
33
|
+
timeZone: tz,
|
|
34
|
+
year: 'numeric',
|
|
35
|
+
month: '2-digit',
|
|
36
|
+
day: '2-digit',
|
|
37
|
+
hour: '2-digit',
|
|
38
|
+
minute: '2-digit',
|
|
39
|
+
hour12: false,
|
|
40
|
+
}).formatToParts(now);
|
|
41
|
+
const get = (type) => Number(parts.find((p) => p.type === type)?.value ?? 0);
|
|
42
|
+
return {
|
|
43
|
+
year: get('year'),
|
|
44
|
+
month: get('month'),
|
|
45
|
+
day: get('day'),
|
|
46
|
+
hour: get('hour'),
|
|
47
|
+
minute: get('minute'),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** Build an RFC3339 timestamp for a date in the given timezone.
|
|
51
|
+
* Strategy: create a UTC Date near the target local time, then use Intl to find
|
|
52
|
+
* the actual offset at that moment in the target timezone. This correctly handles
|
|
53
|
+
* DST transitions because we compute the offset at the actual wall-clock time. */
|
|
54
|
+
function dateToRfc3339(year, month, day, hour, minute, tz) {
|
|
55
|
+
// Step 1: Approximate UTC time (assume offset is 0 initially)
|
|
56
|
+
const approxUtc = new Date(Date.UTC(year, month - 1, day, hour, minute));
|
|
57
|
+
// Step 2: Get the offset at this approximate time
|
|
58
|
+
const offset1 = getTimezoneOffset(approxUtc, tz);
|
|
59
|
+
// Step 3: Refine: the actual UTC instant for "year-month-day hour:minute in tz"
|
|
60
|
+
// is approximately approxUtc - offset1
|
|
61
|
+
const refinedUtc = new Date(approxUtc.getTime() - offset1 * 60000);
|
|
62
|
+
// Step 4: Get the offset at the refined time (handles DST boundary correctly)
|
|
63
|
+
const offset2 = getTimezoneOffset(refinedUtc, tz);
|
|
64
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
65
|
+
return `${year}-${pad(month)}-${pad(day)}T${pad(hour)}:${pad(minute)}:00${formatOffset(offset2)}`;
|
|
66
|
+
}
|
|
67
|
+
function getTimezoneOffset(utcDate, tz) {
|
|
68
|
+
// Returns offset in minutes (positive = ahead of UTC, e.g. UTC+5:30 = 330)
|
|
69
|
+
// Uses Intl.DateTimeFormat to get the actual local time components at the given UTC instant
|
|
70
|
+
const parts = new Intl.DateTimeFormat('en-US', {
|
|
71
|
+
timeZone: tz,
|
|
72
|
+
year: 'numeric',
|
|
73
|
+
month: '2-digit',
|
|
74
|
+
day: '2-digit',
|
|
75
|
+
hour: '2-digit',
|
|
76
|
+
minute: '2-digit',
|
|
77
|
+
second: '2-digit',
|
|
78
|
+
hour12: false,
|
|
79
|
+
}).formatToParts(utcDate);
|
|
80
|
+
const get = (type) => Number(parts.find((p) => p.type === type)?.value ?? 0);
|
|
81
|
+
const localTime = Date.UTC(get('year'), get('month') - 1, get('day'), get('hour'), get('minute'), get('second'));
|
|
82
|
+
return (localTime - utcDate.getTime()) / 60000;
|
|
83
|
+
}
|
|
84
|
+
function formatOffset(offsetMinutes) {
|
|
85
|
+
const sign = offsetMinutes >= 0 ? '+' : '-';
|
|
86
|
+
const abs = Math.abs(offsetMinutes);
|
|
87
|
+
const hours = Math.floor(abs / 60);
|
|
88
|
+
const mins = abs % 60;
|
|
89
|
+
return `${sign}${String(hours).padStart(2, '0')}:${String(mins).padStart(2, '0')}`;
|
|
90
|
+
}
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
// Duration parsing (for --to "+1h", "+30m", "+2d")
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
const DURATION_RE = /^\+(\d+)(m|h|d|w)$/;
|
|
95
|
+
export function parseDuration(input) {
|
|
96
|
+
const match = DURATION_RE.exec(input);
|
|
97
|
+
if (!match)
|
|
98
|
+
return null;
|
|
99
|
+
const value = Number(match[1]);
|
|
100
|
+
switch (match[2]) {
|
|
101
|
+
case 'm': return value * 60 * 1000;
|
|
102
|
+
case 'h': return value * 60 * 60 * 1000;
|
|
103
|
+
case 'd': return value * 24 * 60 * 60 * 1000;
|
|
104
|
+
case 'w': return value * 7 * 24 * 60 * 60 * 1000;
|
|
105
|
+
default: return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Time expression parsing
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
/** Check if a string looks like a date-only value (YYYY-MM-DD) */
|
|
112
|
+
export function isDateOnly(input) {
|
|
113
|
+
return /^\d{4}-\d{2}-\d{2}$/.test(input);
|
|
114
|
+
}
|
|
115
|
+
/** Parse a time expression into an RFC3339 string */
|
|
116
|
+
export function parseTimeExpression(input, tz) {
|
|
117
|
+
const trimmed = input.trim().toLowerCase();
|
|
118
|
+
// Already RFC3339
|
|
119
|
+
if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(input)) {
|
|
120
|
+
// If it has timezone offset, use as-is
|
|
121
|
+
if (/[+-]\d{2}:\d{2}$/.test(input) || input.endsWith('Z')) {
|
|
122
|
+
return input;
|
|
123
|
+
}
|
|
124
|
+
// Otherwise interpret in calendar timezone
|
|
125
|
+
const [datePart, timePart] = input.split('T');
|
|
126
|
+
const [year, month, day] = datePart.split('-').map(Number);
|
|
127
|
+
const [hour, minute] = timePart.split(':').map(Number);
|
|
128
|
+
return dateToRfc3339(year, month, day, hour, minute, tz);
|
|
129
|
+
}
|
|
130
|
+
// Date only: YYYY-MM-DD — convert to start-of-day RFC3339 in calendar timezone
|
|
131
|
+
// Callers that need date-only (all-day events) should check isDateOnly() before calling this.
|
|
132
|
+
if (isDateOnly(input)) {
|
|
133
|
+
const [year, month, day] = input.split('-').map(Number);
|
|
134
|
+
return dateToRfc3339(year, month, day, 0, 0, tz);
|
|
135
|
+
}
|
|
136
|
+
// Relative duration from now: +1h, +30m, +2d, +1w
|
|
137
|
+
const durationMs = parseDuration(input.trim());
|
|
138
|
+
if (durationMs !== null) {
|
|
139
|
+
const n = nowInTz(tz);
|
|
140
|
+
const nowRfc = dateToRfc3339(n.year, n.month, n.day, n.hour, n.minute, tz);
|
|
141
|
+
return new Date(new Date(nowRfc).getTime() + durationMs).toISOString();
|
|
142
|
+
}
|
|
143
|
+
const { year, month, day } = nowInTz(tz);
|
|
144
|
+
switch (trimmed) {
|
|
145
|
+
case 'now': {
|
|
146
|
+
const n = nowInTz(tz);
|
|
147
|
+
return dateToRfc3339(n.year, n.month, n.day, n.hour, n.minute, tz);
|
|
148
|
+
}
|
|
149
|
+
case 'today':
|
|
150
|
+
return dateToRfc3339(year, month, day, 0, 0, tz);
|
|
151
|
+
case 'tomorrow': {
|
|
152
|
+
const t = new Date(year, month - 1, day + 1);
|
|
153
|
+
return dateToRfc3339(t.getFullYear(), t.getMonth() + 1, t.getDate(), 0, 0, tz);
|
|
154
|
+
}
|
|
155
|
+
case 'yesterday': {
|
|
156
|
+
const y = new Date(year, month - 1, day - 1);
|
|
157
|
+
return dateToRfc3339(y.getFullYear(), y.getMonth() + 1, y.getDate(), 0, 0, tz);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Weekday names: monday, next tuesday, etc.
|
|
161
|
+
const nextMatch = trimmed.match(/^(?:next\s+)?(\w+)$/);
|
|
162
|
+
if (nextMatch && WEEKDAYS.includes(nextMatch[1])) {
|
|
163
|
+
const now = new Date();
|
|
164
|
+
const target = findNextWeekday(nextMatch[1], now, tz);
|
|
165
|
+
const parts = new Intl.DateTimeFormat('en-US', {
|
|
166
|
+
timeZone: tz,
|
|
167
|
+
year: 'numeric',
|
|
168
|
+
month: '2-digit',
|
|
169
|
+
day: '2-digit',
|
|
170
|
+
}).formatToParts(target);
|
|
171
|
+
const get = (type) => Number(parts.find((p) => p.type === type)?.value ?? 0);
|
|
172
|
+
return dateToRfc3339(get('year'), get('month'), get('day'), 0, 0, tz);
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`Cannot parse time expression: "${input}"`);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Resolve time range from command options.
|
|
178
|
+
* Convenience flags (--today, --tomorrow, --week, --days) take priority over --from/--to.
|
|
179
|
+
* Default: next 7 days from now.
|
|
180
|
+
*/
|
|
181
|
+
export function resolveTimeRange(opts, tz) {
|
|
182
|
+
const { year, month, day } = nowInTz(tz);
|
|
183
|
+
if (opts.today) {
|
|
184
|
+
return {
|
|
185
|
+
timeMin: dateToRfc3339(year, month, day, 0, 0, tz),
|
|
186
|
+
timeMax: dateToRfc3339(year, month, day, 23, 59, tz),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
if (opts.tomorrow) {
|
|
190
|
+
const t = new Date(year, month - 1, day + 1);
|
|
191
|
+
return {
|
|
192
|
+
timeMin: dateToRfc3339(t.getFullYear(), t.getMonth() + 1, t.getDate(), 0, 0, tz),
|
|
193
|
+
timeMax: dateToRfc3339(t.getFullYear(), t.getMonth() + 1, t.getDate(), 23, 59, tz),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
if (opts.week) {
|
|
197
|
+
const weekStartDay = WEEKDAYS.indexOf((opts.weekStart ?? 'monday').toLowerCase());
|
|
198
|
+
const currentDay = getWeekdayInTz(new Date(), tz);
|
|
199
|
+
let daysBack = currentDay - weekStartDay;
|
|
200
|
+
if (daysBack < 0)
|
|
201
|
+
daysBack += 7;
|
|
202
|
+
const start = new Date(year, month - 1, day - daysBack);
|
|
203
|
+
const end = new Date(start.getFullYear(), start.getMonth(), start.getDate() + 6);
|
|
204
|
+
return {
|
|
205
|
+
timeMin: dateToRfc3339(start.getFullYear(), start.getMonth() + 1, start.getDate(), 0, 0, tz),
|
|
206
|
+
timeMax: dateToRfc3339(end.getFullYear(), end.getMonth() + 1, end.getDate(), 23, 59, tz),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
if (opts.days && opts.days > 0) {
|
|
210
|
+
const end = new Date(year, month - 1, day + opts.days - 1);
|
|
211
|
+
return {
|
|
212
|
+
timeMin: dateToRfc3339(year, month, day, 0, 0, tz),
|
|
213
|
+
timeMax: dateToRfc3339(end.getFullYear(), end.getMonth() + 1, end.getDate(), 23, 59, tz),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
// Explicit --from / --to
|
|
217
|
+
if (opts.from || opts.to) {
|
|
218
|
+
const fromStr = opts.from ? parseTimeExpression(opts.from, tz) : dateToRfc3339(year, month, day, 0, 0, tz);
|
|
219
|
+
let toStr;
|
|
220
|
+
if (opts.to) {
|
|
221
|
+
// Check if --to is a duration relative to --from
|
|
222
|
+
const durationMs = parseDuration(opts.to);
|
|
223
|
+
if (durationMs !== null) {
|
|
224
|
+
const fromDate = new Date(fromStr);
|
|
225
|
+
toStr = new Date(fromDate.getTime() + durationMs).toISOString();
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
toStr = parseTimeExpression(opts.to, tz);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
// Default to 7 days from --from
|
|
233
|
+
const fromDate = new Date(fromStr);
|
|
234
|
+
toStr = new Date(fromDate.getTime() + 7 * 24 * 60 * 60 * 1000).toISOString();
|
|
235
|
+
}
|
|
236
|
+
return { timeMin: fromStr, timeMax: toStr };
|
|
237
|
+
}
|
|
238
|
+
// Default: next 7 days
|
|
239
|
+
const end = new Date(year, month - 1, day + 7);
|
|
240
|
+
return {
|
|
241
|
+
timeMin: dateToRfc3339(year, month, day, 0, 0, tz),
|
|
242
|
+
timeMax: dateToRfc3339(end.getFullYear(), end.getMonth() + 1, end.getDate(), 0, 0, tz),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=calendar-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-time.js","sourceRoot":"","sources":["../src/calendar-time.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -11,26 +11,28 @@ import { registerDraftCommands } from './commands/draft.js';
|
|
|
11
11
|
import { registerLabelCommands } from './commands/label.js';
|
|
12
12
|
import { registerAttachmentCommands } from './commands/attachment.js';
|
|
13
13
|
import { registerProfileCommands } from './commands/profile.js';
|
|
14
|
+
import { registerCalendarCommands } from './commands/calendar.js';
|
|
14
15
|
const cli = goke('zele');
|
|
15
16
|
// ---------------------------------------------------------------------------
|
|
16
17
|
// Global options
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
18
19
|
cli.option('--account <account>', z.array(z.string()).describe('Filter by email account (repeatable)'));
|
|
19
20
|
// ---------------------------------------------------------------------------
|
|
20
|
-
// Register all command modules
|
|
21
|
+
// Register all command modules (auth first so login/logout/whoami appear at top of --help)
|
|
21
22
|
// ---------------------------------------------------------------------------
|
|
22
23
|
registerAuthCommands(cli);
|
|
24
|
+
registerProfileCommands(cli);
|
|
23
25
|
registerMailCommands(cli);
|
|
24
26
|
registerMailActionCommands(cli);
|
|
25
27
|
registerDraftCommands(cli);
|
|
26
28
|
registerLabelCommands(cli);
|
|
27
29
|
registerAttachmentCommands(cli);
|
|
28
|
-
|
|
30
|
+
registerCalendarCommands(cli);
|
|
29
31
|
// ---------------------------------------------------------------------------
|
|
30
32
|
// Help & version
|
|
31
33
|
// ---------------------------------------------------------------------------
|
|
32
34
|
cli.help();
|
|
33
|
-
cli.version('0.
|
|
35
|
+
cli.version('0.2.0');
|
|
34
36
|
// ---------------------------------------------------------------------------
|
|
35
37
|
// Parse & run
|
|
36
38
|
// ---------------------------------------------------------------------------
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,kCAAkC;AAClC,0EAA0E;AAC1E,wEAAwE;AAExE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,kCAAkC;AAClC,0EAA0E;AAC1E,wEAAwE;AAExE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;AAExB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,GAAG,CAAC,MAAM,CACR,qBAAqB,EACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CACrE,CAAA;AAED,8EAA8E;AAC9E,2FAA2F;AAC3F,8EAA8E;AAE9E,oBAAoB,CAAC,GAAG,CAAC,CAAA;AACzB,uBAAuB,CAAC,GAAG,CAAC,CAAA;AAC5B,oBAAoB,CAAC,GAAG,CAAC,CAAA;AACzB,0BAA0B,CAAC,GAAG,CAAC,CAAA;AAC/B,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAC1B,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAC1B,0BAA0B,CAAC,GAAG,CAAC,CAAA;AAC/B,wBAAwB,CAAC,GAAG,CAAC,CAAA;AAE7B,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,GAAG,CAAC,IAAI,EAAE,CAAA;AACV,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAEpB,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,GAAG,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
// Auth commands: login, logout,
|
|
1
|
+
// Auth commands: login, logout, whoami.
|
|
2
2
|
// Manages OAuth2 authentication for zele.
|
|
3
3
|
// Supports multiple accounts: login adds accounts, logout removes one.
|
|
4
4
|
import { login, logout, listAccounts, getAuthStatuses } from '../auth.js';
|
|
5
5
|
import * as out from '../output.js';
|
|
6
6
|
export function registerAuthCommands(cli) {
|
|
7
7
|
cli
|
|
8
|
-
.command('
|
|
8
|
+
.command('login', 'Authenticate with Google (opens browser)')
|
|
9
9
|
.action(async () => {
|
|
10
10
|
const { email } = await login();
|
|
11
11
|
out.success(`Authenticated as ${email}`);
|
|
12
12
|
});
|
|
13
13
|
cli
|
|
14
|
-
.command('
|
|
14
|
+
.command('logout [email]', 'Remove stored credentials for an account')
|
|
15
15
|
.option('--force', 'Skip confirmation')
|
|
16
16
|
.action(async (email, options) => {
|
|
17
17
|
const accounts = await listAccounts();
|
|
@@ -54,11 +54,11 @@ export function registerAuthCommands(cli) {
|
|
|
54
54
|
out.success(`Credentials removed for ${targetEmail}`);
|
|
55
55
|
});
|
|
56
56
|
cli
|
|
57
|
-
.command('
|
|
57
|
+
.command('whoami', 'Show authenticated accounts')
|
|
58
58
|
.action(async () => {
|
|
59
59
|
const statuses = await getAuthStatuses();
|
|
60
60
|
if (statuses.length === 0) {
|
|
61
|
-
out.hint('Not authenticated. Run: zele
|
|
61
|
+
out.hint('Not authenticated. Run: zele login');
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
out.printList(statuses.map((s) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-cmd.js","sourceRoot":"","sources":["../../src/commands/auth-cmd.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,0CAA0C;AAC1C,uEAAuE;AAGvE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAEnC,MAAM,UAAU,oBAAoB,CAAC,GAAS;IAC5C,GAAG;SACA,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"auth-cmd.js","sourceRoot":"","sources":["../../src/commands/auth-cmd.ts"],"names":[],"mappings":"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"}
|