@shin1ohno/sage 0.7.9 → 0.8.4

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 (43) hide show
  1. package/README.md +26 -8
  2. package/dist/config/loader.d.ts.map +1 -1
  3. package/dist/config/loader.js +30 -1
  4. package/dist/config/loader.js.map +1 -1
  5. package/dist/config/validation.d.ts +130 -0
  6. package/dist/config/validation.d.ts.map +1 -0
  7. package/dist/config/validation.js +53 -0
  8. package/dist/config/validation.js.map +1 -0
  9. package/dist/index.js +677 -214
  10. package/dist/index.js.map +1 -1
  11. package/dist/integrations/calendar-service.d.ts +6 -3
  12. package/dist/integrations/calendar-service.d.ts.map +1 -1
  13. package/dist/integrations/calendar-service.js +26 -4
  14. package/dist/integrations/calendar-service.js.map +1 -1
  15. package/dist/integrations/calendar-source-manager.d.ts +302 -0
  16. package/dist/integrations/calendar-source-manager.d.ts.map +1 -0
  17. package/dist/integrations/calendar-source-manager.js +862 -0
  18. package/dist/integrations/calendar-source-manager.js.map +1 -0
  19. package/dist/integrations/google-calendar-service.d.ts +176 -0
  20. package/dist/integrations/google-calendar-service.d.ts.map +1 -0
  21. package/dist/integrations/google-calendar-service.js +745 -0
  22. package/dist/integrations/google-calendar-service.js.map +1 -0
  23. package/dist/oauth/google-oauth-handler.d.ts +149 -0
  24. package/dist/oauth/google-oauth-handler.d.ts.map +1 -0
  25. package/dist/oauth/google-oauth-handler.js +365 -0
  26. package/dist/oauth/google-oauth-handler.js.map +1 -0
  27. package/dist/types/config.d.ts +15 -0
  28. package/dist/types/config.d.ts.map +1 -1
  29. package/dist/types/config.js +21 -0
  30. package/dist/types/config.js.map +1 -1
  31. package/dist/types/google-calendar-types.d.ts +139 -0
  32. package/dist/types/google-calendar-types.d.ts.map +1 -0
  33. package/dist/types/google-calendar-types.js +46 -0
  34. package/dist/types/google-calendar-types.js.map +1 -0
  35. package/dist/types/index.d.ts +1 -0
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/index.js +1 -0
  38. package/dist/types/index.js.map +1 -1
  39. package/dist/version.d.ts +2 -2
  40. package/dist/version.d.ts.map +1 -1
  41. package/dist/version.js +22 -4
  42. package/dist/version.js.map +1 -1
  43. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-calendar-service.js","sourceRoot":"","sources":["../../src/integrations/google-calendar-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Google OAuth Handler
3
+ * Requirements: 1 (Google Calendar OAuth Authentication)
4
+ *
5
+ * Handles OAuth 2.0 flow for Google Calendar API integration.
6
+ * Uses PKCE (Proof Key for Code Exchange) with S256 method.
7
+ */
8
+ import { OAuth2Client } from 'google-auth-library';
9
+ /**
10
+ * Google OAuth Tokens
11
+ */
12
+ export interface GoogleOAuthTokens {
13
+ accessToken: string;
14
+ refreshToken: string;
15
+ expiresAt: number;
16
+ scope: string[];
17
+ }
18
+ /**
19
+ * Google OAuth Configuration
20
+ */
21
+ export interface GoogleOAuthConfig {
22
+ clientId: string;
23
+ clientSecret: string;
24
+ redirectUri: string;
25
+ }
26
+ /**
27
+ * Google Calendar API Scopes
28
+ */
29
+ export declare const GOOGLE_CALENDAR_SCOPES: string[];
30
+ /**
31
+ * Google OAuth Handler Class
32
+ *
33
+ * Manages OAuth 2.0 authentication flow with Google Calendar API.
34
+ * Implements PKCE for enhanced security.
35
+ */
36
+ export declare class GoogleOAuthHandler {
37
+ private codeVerifier;
38
+ private config;
39
+ private readonly encryptionKey;
40
+ private readonly tokensStoragePath;
41
+ constructor(config: GoogleOAuthConfig, encryptionKey?: string, userId?: string);
42
+ /**
43
+ * Create OAuth2Client instance
44
+ */
45
+ private createOAuth2Client;
46
+ /**
47
+ * Encrypt data using AES-256-GCM
48
+ */
49
+ private encrypt;
50
+ /**
51
+ * Decrypt data using AES-256-GCM
52
+ */
53
+ private decrypt;
54
+ /**
55
+ * Generate authorization URL with PKCE code_challenge
56
+ *
57
+ * Generates a code_verifier and code_challenge (S256), stores the verifier
58
+ * for later token exchange, and returns the authorization URL.
59
+ *
60
+ * @param redirectUri - Redirect URI for OAuth callback
61
+ * @returns Authorization URL for user to visit
62
+ */
63
+ getAuthorizationUrl(redirectUri?: string): Promise<string>;
64
+ /**
65
+ * Exchange authorization code for tokens
66
+ *
67
+ * Exchanges the authorization code received from OAuth callback
68
+ * for access and refresh tokens. Uses the stored code_verifier
69
+ * for PKCE verification.
70
+ *
71
+ * @param code - Authorization code from OAuth callback
72
+ * @param redirectUri - Redirect URI (must match authorization request)
73
+ * @returns Google OAuth tokens
74
+ * @throws Error if code_verifier is not found or token exchange fails
75
+ */
76
+ exchangeCodeForTokens(code: string, redirectUri?: string): Promise<GoogleOAuthTokens>;
77
+ /**
78
+ * Refresh access token using refresh token
79
+ *
80
+ * @param refreshToken - Refresh token
81
+ * @returns Updated Google OAuth tokens
82
+ * @throws Error if token refresh fails
83
+ */
84
+ refreshAccessToken(refreshToken: string): Promise<GoogleOAuthTokens>;
85
+ /**
86
+ * Revoke access token
87
+ *
88
+ * @param accessToken - Access token to revoke
89
+ * @throws Error if token revocation fails
90
+ */
91
+ revokeToken(accessToken: string): Promise<void>;
92
+ /**
93
+ * Store tokens securely with encryption
94
+ *
95
+ * Encrypts tokens using AES-256-GCM and stores them in ~/.sage/google_oauth_tokens_{userId}.enc
96
+ *
97
+ * @param tokens - Google OAuth tokens to store
98
+ * @throws Error if token storage fails
99
+ */
100
+ storeTokens(tokens: GoogleOAuthTokens): Promise<void>;
101
+ /**
102
+ * Get stored tokens with decryption
103
+ *
104
+ * Reads and decrypts tokens from ~/.sage/google_oauth_tokens_{userId}.enc
105
+ *
106
+ * @returns Google OAuth tokens or null if not found
107
+ * @throws Error if token retrieval or decryption fails
108
+ */
109
+ getTokens(): Promise<GoogleOAuthTokens | null>;
110
+ /**
111
+ * Revoke tokens and clear local storage
112
+ *
113
+ * Calls Google's token revocation endpoint AND removes locally stored tokens
114
+ *
115
+ * @throws Error if token revocation fails
116
+ */
117
+ revokeTokens(): Promise<void>;
118
+ /**
119
+ * Validate access token
120
+ *
121
+ * Checks if the access token is valid and not expired (or expiring soon).
122
+ * Token is considered expiring if it expires within 5 minutes.
123
+ *
124
+ * @param tokens - Google OAuth tokens to validate
125
+ * @returns True if token is valid and not expiring soon
126
+ */
127
+ validateToken(tokens: GoogleOAuthTokens): Promise<boolean>;
128
+ /**
129
+ * Ensure valid token
130
+ *
131
+ * Gets stored tokens, validates expiry, refreshes if needed,
132
+ * stores updated tokens, and returns valid access token.
133
+ * This method should be called before each Google Calendar API call.
134
+ *
135
+ * @returns Valid access token
136
+ * @throws Error if no tokens found or refresh fails
137
+ */
138
+ ensureValidToken(): Promise<string>;
139
+ /**
140
+ * Get OAuth2 client instance
141
+ *
142
+ * Returns the configured OAuth2Client for use in Google API calls.
143
+ *
144
+ * @param tokens - Google OAuth tokens
145
+ * @returns Configured OAuth2Client
146
+ */
147
+ getOAuth2Client(tokens: GoogleOAuthTokens): OAuth2Client;
148
+ }
149
+ //# sourceMappingURL=google-oauth-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-oauth-handler.d.ts","sourceRoot":"","sources":["../../src/oauth/google-oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAYD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAGlC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAE/B,MAAM,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAU9E;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;YACW,OAAO;IAsBrB;;OAEG;YACW,OAAO;IA4BrB;;;;;;;;OAQG;IACG,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBhE;;;;;;;;;;;OAWG;IACG,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;;;;;OAMG;IACG,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6B1E;;;;;OAKG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD;;;;;;;OAOG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B3D;;;;;;;OAOG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA2BpD;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BnC;;;;;;;;OAQG;IACG,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAShE;;;;;;;;;OASG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAgCzC;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY;CAgBzD"}
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Google OAuth Handler
3
+ * Requirements: 1 (Google Calendar OAuth Authentication)
4
+ *
5
+ * Handles OAuth 2.0 flow for Google Calendar API integration.
6
+ * Uses PKCE (Proof Key for Code Exchange) with S256 method.
7
+ */
8
+ import { google } from 'googleapis';
9
+ import { generateCodeVerifier, generateCodeChallenge } from './pkce.js';
10
+ import { createCipheriv, createDecipheriv, randomBytes, scrypt } from 'crypto';
11
+ import { promisify } from 'util';
12
+ import { readFile, writeFile, mkdir } from 'fs/promises';
13
+ import { join } from 'path';
14
+ import { homedir } from 'os';
15
+ const scryptAsync = promisify(scrypt);
16
+ /**
17
+ * Google Calendar API Scopes
18
+ */
19
+ export const GOOGLE_CALENDAR_SCOPES = [
20
+ 'https://www.googleapis.com/auth/calendar',
21
+ 'https://www.googleapis.com/auth/calendar.readonly',
22
+ ];
23
+ /**
24
+ * Google OAuth Handler Class
25
+ *
26
+ * Manages OAuth 2.0 authentication flow with Google Calendar API.
27
+ * Implements PKCE for enhanced security.
28
+ */
29
+ export class GoogleOAuthHandler {
30
+ codeVerifier = null;
31
+ config;
32
+ encryptionKey;
33
+ tokensStoragePath;
34
+ constructor(config, encryptionKey, userId) {
35
+ this.config = config;
36
+ // Use provided encryption key or generate from environment
37
+ this.encryptionKey = encryptionKey || process.env.SAGE_ENCRYPTION_KEY || 'sage-default-encryption-key-change-me';
38
+ // Store tokens at ~/.sage/google_oauth_tokens_{userId}.enc
39
+ const sageDir = join(homedir(), '.sage');
40
+ const userIdSuffix = userId ? `_${userId}` : '';
41
+ this.tokensStoragePath = join(sageDir, `google_oauth_tokens${userIdSuffix}.enc`);
42
+ }
43
+ /**
44
+ * Create OAuth2Client instance
45
+ */
46
+ createOAuth2Client(redirectUri) {
47
+ return new google.auth.OAuth2(this.config.clientId, this.config.clientSecret, redirectUri || this.config.redirectUri);
48
+ }
49
+ /**
50
+ * Encrypt data using AES-256-GCM
51
+ */
52
+ async encrypt(data) {
53
+ // Derive key from encryption key using scrypt
54
+ const salt = randomBytes(16);
55
+ const key = (await scryptAsync(this.encryptionKey, salt, 32));
56
+ // Generate IV
57
+ const iv = randomBytes(16);
58
+ // Create cipher
59
+ const cipher = createCipheriv('aes-256-gcm', key, iv);
60
+ // Encrypt data
61
+ let encrypted = cipher.update(data, 'utf8', 'hex');
62
+ encrypted += cipher.final('hex');
63
+ // Get auth tag
64
+ const authTag = cipher.getAuthTag();
65
+ // Combine: salt:iv:authTag:encrypted
66
+ return `${salt.toString('hex')}:${iv.toString('hex')}:${authTag.toString('hex')}:${encrypted}`;
67
+ }
68
+ /**
69
+ * Decrypt data using AES-256-GCM
70
+ */
71
+ async decrypt(encryptedData) {
72
+ // Split encrypted data
73
+ const parts = encryptedData.split(':');
74
+ if (parts.length !== 4) {
75
+ throw new Error('Invalid encrypted data format');
76
+ }
77
+ const [saltHex, ivHex, authTagHex, encrypted] = parts;
78
+ // Convert from hex
79
+ const salt = Buffer.from(saltHex, 'hex');
80
+ const iv = Buffer.from(ivHex, 'hex');
81
+ const authTag = Buffer.from(authTagHex, 'hex');
82
+ // Derive key from encryption key using scrypt
83
+ const key = (await scryptAsync(this.encryptionKey, salt, 32));
84
+ // Create decipher
85
+ const decipher = createDecipheriv('aes-256-gcm', key, iv);
86
+ decipher.setAuthTag(authTag);
87
+ // Decrypt data
88
+ let decrypted = decipher.update(encrypted, 'hex', 'utf8');
89
+ decrypted += decipher.final('utf8');
90
+ return decrypted;
91
+ }
92
+ /**
93
+ * Generate authorization URL with PKCE code_challenge
94
+ *
95
+ * Generates a code_verifier and code_challenge (S256), stores the verifier
96
+ * for later token exchange, and returns the authorization URL.
97
+ *
98
+ * @param redirectUri - Redirect URI for OAuth callback
99
+ * @returns Authorization URL for user to visit
100
+ */
101
+ async getAuthorizationUrl(redirectUri) {
102
+ // Generate PKCE parameters
103
+ this.codeVerifier = generateCodeVerifier();
104
+ const codeChallenge = generateCodeChallenge(this.codeVerifier);
105
+ // Create OAuth2 client with redirect URI
106
+ const oauth2Client = this.createOAuth2Client(redirectUri);
107
+ // Generate authorization URL with PKCE
108
+ const authUrl = oauth2Client.generateAuthUrl({
109
+ access_type: 'offline', // Request refresh token
110
+ scope: GOOGLE_CALENDAR_SCOPES,
111
+ code_challenge: codeChallenge,
112
+ code_challenge_method: 'S256',
113
+ prompt: 'consent', // Force consent screen to get refresh token
114
+ });
115
+ return authUrl;
116
+ }
117
+ /**
118
+ * Exchange authorization code for tokens
119
+ *
120
+ * Exchanges the authorization code received from OAuth callback
121
+ * for access and refresh tokens. Uses the stored code_verifier
122
+ * for PKCE verification.
123
+ *
124
+ * @param code - Authorization code from OAuth callback
125
+ * @param redirectUri - Redirect URI (must match authorization request)
126
+ * @returns Google OAuth tokens
127
+ * @throws Error if code_verifier is not found or token exchange fails
128
+ */
129
+ async exchangeCodeForTokens(code, redirectUri) {
130
+ if (!this.codeVerifier) {
131
+ throw new Error('code_verifier not found. Call getAuthorizationUrl() first.');
132
+ }
133
+ // Create OAuth2 client with redirect URI
134
+ const oauth2Client = this.createOAuth2Client(redirectUri);
135
+ try {
136
+ // Exchange code for tokens with PKCE verifier
137
+ const { tokens } = await oauth2Client.getToken({
138
+ code,
139
+ codeVerifier: this.codeVerifier,
140
+ });
141
+ // Clear stored code_verifier
142
+ this.codeVerifier = null;
143
+ if (!tokens.access_token || !tokens.refresh_token) {
144
+ throw new Error('Failed to retrieve access_token or refresh_token');
145
+ }
146
+ return {
147
+ accessToken: tokens.access_token,
148
+ refreshToken: tokens.refresh_token,
149
+ expiresAt: tokens.expiry_date || Date.now() + 3600 * 1000,
150
+ scope: tokens.scope ? tokens.scope.split(' ') : GOOGLE_CALENDAR_SCOPES,
151
+ };
152
+ }
153
+ catch (error) {
154
+ // Clear code_verifier on error
155
+ this.codeVerifier = null;
156
+ throw new Error(`Failed to exchange code for tokens: ${error instanceof Error ? error.message : 'Unknown error'}`);
157
+ }
158
+ }
159
+ /**
160
+ * Refresh access token using refresh token
161
+ *
162
+ * @param refreshToken - Refresh token
163
+ * @returns Updated Google OAuth tokens
164
+ * @throws Error if token refresh fails
165
+ */
166
+ async refreshAccessToken(refreshToken) {
167
+ const oauth2Client = this.createOAuth2Client();
168
+ try {
169
+ // Set refresh token
170
+ oauth2Client.setCredentials({
171
+ refresh_token: refreshToken,
172
+ });
173
+ // Refresh access token
174
+ const { credentials } = await oauth2Client.refreshAccessToken();
175
+ if (!credentials.access_token) {
176
+ throw new Error('Failed to refresh access_token');
177
+ }
178
+ return {
179
+ accessToken: credentials.access_token,
180
+ refreshToken: credentials.refresh_token || refreshToken,
181
+ expiresAt: credentials.expiry_date || Date.now() + 3600 * 1000,
182
+ scope: credentials.scope ? credentials.scope.split(' ') : GOOGLE_CALENDAR_SCOPES,
183
+ };
184
+ }
185
+ catch (error) {
186
+ throw new Error(`Failed to refresh access token: ${error instanceof Error ? error.message : 'Unknown error'}`);
187
+ }
188
+ }
189
+ /**
190
+ * Revoke access token
191
+ *
192
+ * @param accessToken - Access token to revoke
193
+ * @throws Error if token revocation fails
194
+ */
195
+ async revokeToken(accessToken) {
196
+ const oauth2Client = this.createOAuth2Client();
197
+ try {
198
+ await oauth2Client.revokeToken(accessToken);
199
+ }
200
+ catch (error) {
201
+ throw new Error(`Failed to revoke token: ${error instanceof Error ? error.message : 'Unknown error'}`);
202
+ }
203
+ }
204
+ /**
205
+ * Store tokens securely with encryption
206
+ *
207
+ * Encrypts tokens using AES-256-GCM and stores them in ~/.sage/google_oauth_tokens_{userId}.enc
208
+ *
209
+ * @param tokens - Google OAuth tokens to store
210
+ * @throws Error if token storage fails
211
+ */
212
+ async storeTokens(tokens) {
213
+ try {
214
+ // Convert to stored format
215
+ const storedTokens = {
216
+ accessToken: tokens.accessToken,
217
+ refreshToken: tokens.refreshToken,
218
+ expiresAt: new Date(tokens.expiresAt).toISOString(),
219
+ scope: tokens.scope,
220
+ };
221
+ // Encrypt tokens
222
+ const tokensJson = JSON.stringify(storedTokens);
223
+ const encrypted = await this.encrypt(tokensJson);
224
+ // Ensure ~/.sage directory exists
225
+ const sageDir = join(homedir(), '.sage');
226
+ await mkdir(sageDir, { recursive: true });
227
+ // Write encrypted tokens to file
228
+ await writeFile(this.tokensStoragePath, encrypted, 'utf8');
229
+ }
230
+ catch (error) {
231
+ throw new Error(`Failed to store tokens: ${error instanceof Error ? error.message : 'Unknown error'}`);
232
+ }
233
+ }
234
+ /**
235
+ * Get stored tokens with decryption
236
+ *
237
+ * Reads and decrypts tokens from ~/.sage/google_oauth_tokens_{userId}.enc
238
+ *
239
+ * @returns Google OAuth tokens or null if not found
240
+ * @throws Error if token retrieval or decryption fails
241
+ */
242
+ async getTokens() {
243
+ try {
244
+ // Read encrypted tokens from file
245
+ const encrypted = await readFile(this.tokensStoragePath, 'utf8');
246
+ // Decrypt tokens
247
+ const tokensJson = await this.decrypt(encrypted);
248
+ const storedTokens = JSON.parse(tokensJson);
249
+ // Convert to GoogleOAuthTokens format
250
+ return {
251
+ accessToken: storedTokens.accessToken,
252
+ refreshToken: storedTokens.refreshToken,
253
+ expiresAt: new Date(storedTokens.expiresAt).getTime(),
254
+ scope: storedTokens.scope,
255
+ };
256
+ }
257
+ catch (error) {
258
+ // Return null if file not found (user hasn't authenticated yet)
259
+ if (error.code === 'ENOENT') {
260
+ return null;
261
+ }
262
+ throw new Error(`Failed to get tokens: ${error instanceof Error ? error.message : 'Unknown error'}`);
263
+ }
264
+ }
265
+ /**
266
+ * Revoke tokens and clear local storage
267
+ *
268
+ * Calls Google's token revocation endpoint AND removes locally stored tokens
269
+ *
270
+ * @throws Error if token revocation fails
271
+ */
272
+ async revokeTokens() {
273
+ try {
274
+ // Get current tokens
275
+ const tokens = await this.getTokens();
276
+ if (tokens) {
277
+ // Revoke token at Google
278
+ await this.revokeToken(tokens.accessToken);
279
+ }
280
+ // Clear local storage (remove file)
281
+ const fs = await import('fs/promises');
282
+ try {
283
+ await fs.unlink(this.tokensStoragePath);
284
+ }
285
+ catch (error) {
286
+ // Ignore if file doesn't exist
287
+ if (error.code !== 'ENOENT') {
288
+ throw error;
289
+ }
290
+ }
291
+ }
292
+ catch (error) {
293
+ throw new Error(`Failed to revoke tokens: ${error instanceof Error ? error.message : 'Unknown error'}`);
294
+ }
295
+ }
296
+ /**
297
+ * Validate access token
298
+ *
299
+ * Checks if the access token is valid and not expired (or expiring soon).
300
+ * Token is considered expiring if it expires within 5 minutes.
301
+ *
302
+ * @param tokens - Google OAuth tokens to validate
303
+ * @returns True if token is valid and not expiring soon
304
+ */
305
+ async validateToken(tokens) {
306
+ // Check if expiresAt timestamp is in the future
307
+ const now = Date.now();
308
+ const fiveMinutesInMs = 5 * 60 * 1000;
309
+ // Token is valid if it expires more than 5 minutes from now
310
+ return tokens.expiresAt > now + fiveMinutesInMs;
311
+ }
312
+ /**
313
+ * Ensure valid token
314
+ *
315
+ * Gets stored tokens, validates expiry, refreshes if needed,
316
+ * stores updated tokens, and returns valid access token.
317
+ * This method should be called before each Google Calendar API call.
318
+ *
319
+ * @returns Valid access token
320
+ * @throws Error if no tokens found or refresh fails
321
+ */
322
+ async ensureValidToken() {
323
+ // 1. Get stored tokens
324
+ const tokens = await this.getTokens();
325
+ if (!tokens) {
326
+ throw new Error('No stored tokens found. Please authenticate with Google Calendar first.');
327
+ }
328
+ // 2. Validate expiry
329
+ const isValid = await this.validateToken(tokens);
330
+ // 3. Refresh if needed
331
+ if (!isValid) {
332
+ try {
333
+ const refreshedTokens = await this.refreshAccessToken(tokens.refreshToken);
334
+ // 4. Store updated tokens
335
+ await this.storeTokens(refreshedTokens);
336
+ // 5. Return valid access token
337
+ return refreshedTokens.accessToken;
338
+ }
339
+ catch (error) {
340
+ throw new Error(`Failed to refresh expired token: ${error instanceof Error ? error.message : 'Unknown error'}`);
341
+ }
342
+ }
343
+ // 5. Return valid access token (no refresh needed)
344
+ return tokens.accessToken;
345
+ }
346
+ /**
347
+ * Get OAuth2 client instance
348
+ *
349
+ * Returns the configured OAuth2Client for use in Google API calls.
350
+ *
351
+ * @param tokens - Google OAuth tokens
352
+ * @returns Configured OAuth2Client
353
+ */
354
+ getOAuth2Client(tokens) {
355
+ const client = new google.auth.OAuth2(this.config.clientId, this.config.clientSecret, this.config.redirectUri);
356
+ client.setCredentials({
357
+ access_token: tokens.accessToken,
358
+ refresh_token: tokens.refreshToken,
359
+ expiry_date: tokens.expiresAt,
360
+ scope: tokens.scope.join(' '),
361
+ });
362
+ return client;
363
+ }
364
+ }
365
+ //# sourceMappingURL=google-oauth-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-oauth-handler.js","sourceRoot":"","sources":["../../src/oauth/google-oauth-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AA+BtC;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,0CAA0C;IAC1C,mDAAmD;CACpD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACrB,YAAY,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAoB;IACjB,aAAa,CAAS;IACtB,iBAAiB,CAAS;IAE3C,YAAY,MAAyB,EAAE,aAAsB,EAAE,MAAe;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,2DAA2D;QAC3D,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uCAAuC,CAAC;QACjH,2DAA2D;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,sBAAsB,YAAY,MAAM,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,WAAoB;QAC7C,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,8CAA8C;QAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAW,CAAC;QAExE,cAAc;QACd,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAEtD,eAAe;QACf,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjC,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpC,qCAAqC;QACrC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;IACjG,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,aAAqB;QACzC,uBAAuB;QACvB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;QAEtD,mBAAmB;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/C,8CAA8C;QAC9C,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAW,CAAC;QAExE,kBAAkB;QAClB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1D,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7B,eAAe;QACf,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAoB;QAC5C,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,oBAAoB,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/D,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAE1D,uCAAuC;QACvC,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC;YAC3C,WAAW,EAAE,SAAS,EAAE,wBAAwB;YAChD,KAAK,EAAE,sBAAsB;YAC7B,cAAc,EAAE,aAAa;YAC7B,qBAAqB,EAAE,MAAM;YAC7B,MAAM,EAAE,SAAS,EAAE,4CAA4C;SACzD,CAAC,CAAC;QAEV,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAY,EACZ,WAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC;gBAC7C,IAAI;gBACJ,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;YAEH,6BAA6B;YAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAEzB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,SAAS,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;gBACzD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB;aACvE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+BAA+B;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE/C,IAAI,CAAC;YACH,oBAAoB;YACpB,YAAY,CAAC,cAAc,CAAC;gBAC1B,aAAa,EAAE,YAAY;aAC5B,CAAC,CAAC;YAEH,uBAAuB;YACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAEhE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,WAAW,CAAC,YAAY;gBACrC,YAAY,EAAE,WAAW,CAAC,aAAa,IAAI,YAAY;gBACvD,SAAS,EAAE,WAAW,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC9D,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB;aACjF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,YAAY,GAAiB;gBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;gBACnD,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;YAEF,iBAAiB;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEjD,kCAAkC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,iCAAiC;YACjC,MAAM,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAEjE,iBAAiB;YACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,YAAY,GAAiB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAE1D,sCAAsC;YACtC,OAAO;gBACL,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,YAAY,EAAE,YAAY,CAAC,YAAY;gBACvC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;gBACrD,KAAK,EAAE,YAAY,CAAC,KAAK;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gEAAgE;YAChE,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAEtC,IAAI,MAAM,EAAE,CAAC;gBACX,yBAAyB;gBACzB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YAED,oCAAoC;YACpC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,+BAA+B;gBAC/B,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,MAAyB;QAC3C,gDAAgD;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAEtC,4DAA4D;QAC5D,OAAO,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,eAAe,CAAC;IAClD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB;QACpB,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEjD,uBAAuB;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAE3E,0BAA0B;gBAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAExC,+BAA+B;gBAC/B,OAAO,eAAe,CAAC,WAAW,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,MAAyB;QACvC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,WAAW,CACxB,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,WAAW,EAAE,MAAM,CAAC,SAAS;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SAC9B,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -30,6 +30,21 @@ export interface CalendarConfig {
30
30
  deepWorkDays: string[];
31
31
  deepWorkBlocks: DeepWorkBlock[];
32
32
  timeZone: string;
33
+ sources?: CalendarSources;
34
+ }
35
+ export interface CalendarSources {
36
+ eventkit: EventKitSourceConfig;
37
+ google: GoogleCalendarSourceConfig;
38
+ }
39
+ export interface EventKitSourceConfig {
40
+ enabled: boolean;
41
+ }
42
+ export interface GoogleCalendarSourceConfig {
43
+ enabled: boolean;
44
+ defaultCalendar: string;
45
+ excludedCalendars: string[];
46
+ syncInterval: number;
47
+ enableNotifications: boolean;
33
48
  }
34
49
  export interface DeepWorkBlock {
35
50
  day: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,26 @@
1
1
  /**
2
2
  * Configuration type definitions
3
3
  */
4
+ /**
5
+ * Get default calendar sources configuration based on platform
6
+ */
7
+ function getDefaultCalendarSources() {
8
+ const isMacOS = typeof process !== 'undefined' && process.platform === 'darwin';
9
+ return {
10
+ eventkit: {
11
+ enabled: isMacOS,
12
+ },
13
+ google: {
14
+ // On non-macOS platforms, enable Google Calendar by default
15
+ // to ensure at least one source is enabled
16
+ enabled: !isMacOS,
17
+ defaultCalendar: 'primary',
18
+ excludedCalendars: [],
19
+ syncInterval: 300,
20
+ enableNotifications: true,
21
+ },
22
+ };
23
+ }
4
24
  // Default configuration
5
25
  export const DEFAULT_CONFIG = {
6
26
  version: '1.0.0',
@@ -19,6 +39,7 @@ export const DEFAULT_CONFIG = {
19
39
  deepWorkDays: ['Monday', 'Wednesday', 'Friday'],
20
40
  deepWorkBlocks: [],
21
41
  timeZone: 'Asia/Tokyo',
42
+ sources: getDefaultCalendarSources(),
22
43
  },
23
44
  priorityRules: {
24
45
  p0Conditions: [