@shin1ohno/sage 0.8.7 → 0.9.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/README.md +31 -0
- package/dist/cli/http-server-with-config.d.ts +2 -0
- package/dist/cli/http-server-with-config.d.ts.map +1 -1
- package/dist/cli/http-server-with-config.js +70 -0
- package/dist/cli/http-server-with-config.js.map +1 -1
- package/dist/cli/main-entry.d.ts.map +1 -1
- package/dist/cli/main-entry.js +1 -0
- package/dist/cli/main-entry.js.map +1 -1
- package/dist/cli/parser.d.ts +2 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +7 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/config/validation.d.ts +721 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +203 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/integrations/calendar-service.d.ts +14 -0
- package/dist/integrations/calendar-service.d.ts.map +1 -1
- package/dist/integrations/calendar-service.js.map +1 -1
- package/dist/integrations/calendar-source-manager.d.ts +86 -3
- package/dist/integrations/calendar-source-manager.d.ts.map +1 -1
- package/dist/integrations/calendar-source-manager.js +146 -15
- package/dist/integrations/calendar-source-manager.js.map +1 -1
- package/dist/integrations/google-calendar-service.d.ts +65 -3
- package/dist/integrations/google-calendar-service.d.ts.map +1 -1
- package/dist/integrations/google-calendar-service.js +233 -6
- package/dist/integrations/google-calendar-service.js.map +1 -1
- package/dist/oauth/encryption-service.d.ts +104 -0
- package/dist/oauth/encryption-service.d.ts.map +1 -0
- package/dist/oauth/encryption-service.js +271 -0
- package/dist/oauth/encryption-service.js.map +1 -0
- package/dist/oauth/file-mutex.d.ts +68 -0
- package/dist/oauth/file-mutex.d.ts.map +1 -0
- package/dist/oauth/file-mutex.js +140 -0
- package/dist/oauth/file-mutex.js.map +1 -0
- package/dist/oauth/google-oauth-handler.d.ts +8 -9
- package/dist/oauth/google-oauth-handler.d.ts.map +1 -1
- package/dist/oauth/google-oauth-handler.js +30 -65
- package/dist/oauth/google-oauth-handler.js.map +1 -1
- package/dist/oauth/index.d.ts +1 -0
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +2 -0
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/oauth-server.d.ts +61 -1
- package/dist/oauth/oauth-server.d.ts.map +1 -1
- package/dist/oauth/oauth-server.js +181 -40
- package/dist/oauth/oauth-server.js.map +1 -1
- package/dist/oauth/persistent-client-store.d.ts +58 -0
- package/dist/oauth/persistent-client-store.d.ts.map +1 -0
- package/dist/oauth/persistent-client-store.js +187 -0
- package/dist/oauth/persistent-client-store.js.map +1 -0
- package/dist/oauth/persistent-refresh-token-store.d.ts +77 -0
- package/dist/oauth/persistent-refresh-token-store.d.ts.map +1 -0
- package/dist/oauth/persistent-refresh-token-store.js +225 -0
- package/dist/oauth/persistent-refresh-token-store.js.map +1 -0
- package/dist/oauth/persistent-session-store.d.ts +69 -0
- package/dist/oauth/persistent-session-store.d.ts.map +1 -0
- package/dist/oauth/persistent-session-store.js +154 -0
- package/dist/oauth/persistent-session-store.js.map +1 -0
- package/dist/oauth/session-store.d.ts +31 -0
- package/dist/oauth/session-store.d.ts.map +1 -0
- package/dist/oauth/session-store.js +47 -0
- package/dist/oauth/session-store.js.map +1 -0
- package/dist/services/working-cadence.d.ts +37 -1
- package/dist/services/working-cadence.d.ts.map +1 -1
- package/dist/services/working-cadence.js +151 -13
- package/dist/services/working-cadence.js.map +1 -1
- package/dist/tools/calendar/handlers.d.ts +82 -3
- package/dist/tools/calendar/handlers.d.ts.map +1 -1
- package/dist/tools/calendar/handlers.js +200 -16
- package/dist/tools/calendar/handlers.js.map +1 -1
- package/dist/types/google-calendar-types.d.ts +150 -3
- package/dist/types/google-calendar-types.d.ts.map +1 -1
- package/dist/types/google-calendar-types.js +79 -2
- package/dist/types/google-calendar-types.js.map +1 -1
- package/dist/types/task.d.ts +14 -0
- package/dist/types/task.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,8 +6,68 @@
|
|
|
6
6
|
* event CRUD operations, and calendar management.
|
|
7
7
|
*/
|
|
8
8
|
import { google } from 'googleapis';
|
|
9
|
-
import { convertGoogleToCalendarEvent } from '../types/google-calendar-types.js';
|
|
9
|
+
import { convertGoogleToCalendarEvent, detectEventType } from '../types/google-calendar-types.js';
|
|
10
10
|
import { retryWithBackoff } from '../utils/retry.js';
|
|
11
|
+
import { CreateEventRequestSchema } from '../config/validation.js';
|
|
12
|
+
/**
|
|
13
|
+
* Allowed update fields per event type
|
|
14
|
+
* Requirement: 4.5, 5.3, 6.6 - Event type update restrictions
|
|
15
|
+
*
|
|
16
|
+
* @description Defines which fields can be updated for each event type.
|
|
17
|
+
* - birthday: Can only update summary, colorId, reminders, and date (start/end)
|
|
18
|
+
* - fromGmail: Can only update colorId, reminders, visibility, transparency, status, attendees, extendedProperties
|
|
19
|
+
* - default, outOfOffice, focusTime, workingLocation: All fields allowed
|
|
20
|
+
*/
|
|
21
|
+
const ALLOWED_UPDATE_FIELDS = {
|
|
22
|
+
birthday: new Set(['title', 'reminders', 'start', 'end', 'isAllDay']),
|
|
23
|
+
fromGmail: new Set(['reminders', 'attendees']),
|
|
24
|
+
default: new Set(['title', 'location', 'description', 'start', 'end', 'isAllDay', 'attendees', 'reminders', 'eventType', 'outOfOfficeProperties', 'focusTimeProperties', 'workingLocationProperties', 'birthdayProperties']),
|
|
25
|
+
outOfOffice: new Set(['title', 'location', 'description', 'start', 'end', 'isAllDay', 'attendees', 'reminders', 'eventType', 'outOfOfficeProperties', 'focusTimeProperties', 'workingLocationProperties', 'birthdayProperties']),
|
|
26
|
+
focusTime: new Set(['title', 'location', 'description', 'start', 'end', 'isAllDay', 'attendees', 'reminders', 'eventType', 'outOfOfficeProperties', 'focusTimeProperties', 'workingLocationProperties', 'birthdayProperties']),
|
|
27
|
+
workingLocation: new Set(['title', 'location', 'description', 'start', 'end', 'isAllDay', 'attendees', 'reminders', 'eventType', 'outOfOfficeProperties', 'focusTimeProperties', 'workingLocationProperties', 'birthdayProperties']),
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Get human-readable field names for error messages
|
|
31
|
+
*/
|
|
32
|
+
function getReadableFieldName(field) {
|
|
33
|
+
const fieldNames = {
|
|
34
|
+
title: 'summary',
|
|
35
|
+
location: 'location',
|
|
36
|
+
description: 'description',
|
|
37
|
+
start: 'start date/time',
|
|
38
|
+
end: 'end date/time',
|
|
39
|
+
isAllDay: 'all-day setting',
|
|
40
|
+
attendees: 'attendees',
|
|
41
|
+
reminders: 'reminders',
|
|
42
|
+
eventType: 'event type',
|
|
43
|
+
outOfOfficeProperties: 'out of office properties',
|
|
44
|
+
focusTimeProperties: 'focus time properties',
|
|
45
|
+
workingLocationProperties: 'working location properties',
|
|
46
|
+
birthdayProperties: 'birthday properties',
|
|
47
|
+
};
|
|
48
|
+
return fieldNames[field] || field;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Validate update fields against event type restrictions
|
|
52
|
+
* Requirement: 4.5, 5.3, 6.6 - Event type update restrictions
|
|
53
|
+
*
|
|
54
|
+
* @param eventType - The event type of the existing event
|
|
55
|
+
* @param updates - The fields being updated
|
|
56
|
+
* @throws Error if disallowed fields are being updated
|
|
57
|
+
*/
|
|
58
|
+
function validateUpdateFieldsForEventType(eventType, updates) {
|
|
59
|
+
const allowedFields = ALLOWED_UPDATE_FIELDS[eventType];
|
|
60
|
+
// Get the keys of the updates object that have defined values
|
|
61
|
+
const updateKeys = Object.keys(updates).filter((key) => updates[key] !== undefined);
|
|
62
|
+
// Find disallowed fields
|
|
63
|
+
const disallowedFields = updateKeys.filter((key) => !allowedFields.has(key));
|
|
64
|
+
if (disallowedFields.length > 0) {
|
|
65
|
+
const readableDisallowed = disallowedFields.map(getReadableFieldName).join(', ');
|
|
66
|
+
const readableAllowed = Array.from(allowedFields).map(getReadableFieldName).join(', ');
|
|
67
|
+
throw new Error(`Cannot update ${readableDisallowed} for ${eventType} events. ` +
|
|
68
|
+
`Allowed fields for ${eventType} events: ${readableAllowed}.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
11
71
|
/**
|
|
12
72
|
* Google Calendar Service Class
|
|
13
73
|
*
|
|
@@ -81,6 +141,120 @@ export class GoogleCalendarService {
|
|
|
81
141
|
return false;
|
|
82
142
|
}
|
|
83
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Validate event type and properties
|
|
146
|
+
*
|
|
147
|
+
* Uses CreateEventRequestSchema to validate the request, ensuring that:
|
|
148
|
+
* - Event type is valid (not 'fromGmail' which is read-only)
|
|
149
|
+
* - Type-specific properties match the event type
|
|
150
|
+
* - All-day constraint is enforced for birthday/workingLocation events
|
|
151
|
+
*
|
|
152
|
+
* @param request - CreateEventRequest to validate
|
|
153
|
+
* @throws ZodError if validation fails with descriptive error messages
|
|
154
|
+
*/
|
|
155
|
+
validateEventTypeProperties(request) {
|
|
156
|
+
// Use Zod schema for comprehensive validation
|
|
157
|
+
// parse() throws ZodError with descriptive messages if validation fails
|
|
158
|
+
CreateEventRequestSchema.parse(request);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Build event type payload for Google Calendar API
|
|
162
|
+
*
|
|
163
|
+
* Transforms event type data from CreateEventRequest into Google Calendar API format.
|
|
164
|
+
* Handles all 6 event types: default, outOfOffice, focusTime, workingLocation, birthday, fromGmail.
|
|
165
|
+
*
|
|
166
|
+
* @param request - CreateEventRequest containing event type and type-specific properties
|
|
167
|
+
* @returns Partial calendar_v3.Schema$Event with eventType and type-specific properties
|
|
168
|
+
*/
|
|
169
|
+
buildEventTypePayload(request) {
|
|
170
|
+
const eventType = request.eventType || 'default';
|
|
171
|
+
const payload = {};
|
|
172
|
+
// Set eventType field (only if not default, as default is the API's default)
|
|
173
|
+
if (eventType !== 'default') {
|
|
174
|
+
payload.eventType = eventType;
|
|
175
|
+
}
|
|
176
|
+
switch (eventType) {
|
|
177
|
+
case 'outOfOffice':
|
|
178
|
+
if (request.outOfOfficeProperties) {
|
|
179
|
+
payload.outOfOfficeProperties = {
|
|
180
|
+
autoDeclineMode: request.outOfOfficeProperties.autoDeclineMode,
|
|
181
|
+
declineMessage: request.outOfOfficeProperties.declineMessage,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
break;
|
|
185
|
+
case 'focusTime':
|
|
186
|
+
if (request.focusTimeProperties) {
|
|
187
|
+
payload.focusTimeProperties = {
|
|
188
|
+
autoDeclineMode: request.focusTimeProperties.autoDeclineMode,
|
|
189
|
+
declineMessage: request.focusTimeProperties.declineMessage,
|
|
190
|
+
chatStatus: request.focusTimeProperties.chatStatus,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
case 'workingLocation':
|
|
195
|
+
if (request.workingLocationProperties) {
|
|
196
|
+
const props = request.workingLocationProperties;
|
|
197
|
+
// Build workingLocationProperties based on type
|
|
198
|
+
const workingLocationPayload = {
|
|
199
|
+
type: props.type,
|
|
200
|
+
};
|
|
201
|
+
if (props.type === 'homeOffice' && props.homeOffice !== undefined) {
|
|
202
|
+
// homeOffice is an empty object in Google Calendar API
|
|
203
|
+
workingLocationPayload.homeOffice = {};
|
|
204
|
+
}
|
|
205
|
+
else if (props.type === 'officeLocation' && props.officeLocation) {
|
|
206
|
+
workingLocationPayload.officeLocation = {
|
|
207
|
+
buildingId: props.officeLocation.buildingId,
|
|
208
|
+
floorId: props.officeLocation.floorId,
|
|
209
|
+
floorSectionId: props.officeLocation.floorSectionId,
|
|
210
|
+
deskId: props.officeLocation.deskId,
|
|
211
|
+
label: props.officeLocation.label,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
else if (props.type === 'customLocation' && props.customLocation) {
|
|
215
|
+
workingLocationPayload.customLocation = {
|
|
216
|
+
label: props.customLocation.label,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
payload.workingLocationProperties = workingLocationPayload;
|
|
220
|
+
}
|
|
221
|
+
break;
|
|
222
|
+
case 'birthday':
|
|
223
|
+
// Note: birthdayProperties is not directly supported in Google Calendar API Schema$Event
|
|
224
|
+
// Birthday events are typically created through Google Contacts and synced automatically.
|
|
225
|
+
// Setting eventType to 'birthday' is sufficient; the API handles the rest.
|
|
226
|
+
// If birthdayProperties are provided, they are used for internal tracking only.
|
|
227
|
+
break;
|
|
228
|
+
case 'fromGmail':
|
|
229
|
+
// fromGmail is read-only and cannot be created
|
|
230
|
+
// This case should be handled by validation (Task 11), but we include it here for completeness
|
|
231
|
+
// Setting eventType allows API to reject the request with appropriate error
|
|
232
|
+
break;
|
|
233
|
+
case 'default':
|
|
234
|
+
default:
|
|
235
|
+
// For default events, no additional properties are needed
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
return payload;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Normalize date string to RFC3339 format required by Google Calendar API
|
|
242
|
+
*
|
|
243
|
+
* Converts simple ISO date format (YYYY-MM-DD) to RFC3339 format with UTC timezone.
|
|
244
|
+
* If input is already in RFC3339 format, returns unchanged.
|
|
245
|
+
*
|
|
246
|
+
* @param dateString - Date string in YYYY-MM-DD or RFC3339 format
|
|
247
|
+
* @returns Date string in RFC3339 format (YYYY-MM-DDT00:00:00Z)
|
|
248
|
+
*/
|
|
249
|
+
normalizeToRFC3339(dateString) {
|
|
250
|
+
// Check if already in RFC3339 format (contains 'T' and timezone)
|
|
251
|
+
if (dateString.includes('T')) {
|
|
252
|
+
return dateString;
|
|
253
|
+
}
|
|
254
|
+
// Convert YYYY-MM-DD to YYYY-MM-DDT00:00:00Z
|
|
255
|
+
// Using 00:00:00 UTC ensures we capture all events on the date
|
|
256
|
+
return `${dateString}T00:00:00Z`;
|
|
257
|
+
}
|
|
84
258
|
/**
|
|
85
259
|
* List calendar events with pagination support
|
|
86
260
|
* Requirement: 2, 10 (Google Calendar event retrieval, retry with backoff)
|
|
@@ -108,8 +282,8 @@ export class GoogleCalendarService {
|
|
|
108
282
|
const response = await retryWithBackoff(async () => {
|
|
109
283
|
return (await this.calendarClient.events.list({
|
|
110
284
|
calendarId: calendarId,
|
|
111
|
-
timeMin: request.startDate,
|
|
112
|
-
timeMax: request.endDate,
|
|
285
|
+
timeMin: this.normalizeToRFC3339(request.startDate),
|
|
286
|
+
timeMax: this.normalizeToRFC3339(request.endDate),
|
|
113
287
|
maxResults: 250,
|
|
114
288
|
pageToken: pageToken,
|
|
115
289
|
singleEvents: true, // Expand recurring events into individual instances
|
|
@@ -146,7 +320,16 @@ export class GoogleCalendarService {
|
|
|
146
320
|
pageToken = response.nextPageToken || undefined;
|
|
147
321
|
} while (pageToken);
|
|
148
322
|
// Convert GoogleCalendarEvent[] to CalendarEvent[]
|
|
149
|
-
|
|
323
|
+
const convertedEvents = allEvents.map(event => convertGoogleToCalendarEvent(event));
|
|
324
|
+
// Filter by eventTypes if specified (client-side filtering)
|
|
325
|
+
// Google Calendar API doesn't support filtering by eventType in the API call
|
|
326
|
+
if (request.eventTypes && request.eventTypes.length > 0) {
|
|
327
|
+
return convertedEvents.filter(event =>
|
|
328
|
+
// Event's eventType must be in the requested eventTypes array
|
|
329
|
+
// Events without eventType are treated as 'default'
|
|
330
|
+
request.eventTypes.includes(event.eventType || 'default'));
|
|
331
|
+
}
|
|
332
|
+
return convertedEvents;
|
|
150
333
|
}
|
|
151
334
|
catch (error) {
|
|
152
335
|
throw new Error(`Failed to list events from Google Calendar: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
@@ -166,6 +349,9 @@ export class GoogleCalendarService {
|
|
|
166
349
|
* @throws Error if authentication fails or API request fails after retries
|
|
167
350
|
*/
|
|
168
351
|
async createEvent(request, calendarId) {
|
|
352
|
+
// Validate event type and properties before API call
|
|
353
|
+
// This throws ZodError if validation fails
|
|
354
|
+
this.validateEventTypeProperties(request);
|
|
169
355
|
// Ensure client is authenticated
|
|
170
356
|
if (!this.calendarClient) {
|
|
171
357
|
await this.authenticate();
|
|
@@ -205,6 +391,9 @@ export class GoogleCalendarService {
|
|
|
205
391
|
if (request.reminders) {
|
|
206
392
|
eventBody.reminders = request.reminders;
|
|
207
393
|
}
|
|
394
|
+
// Build and merge event type-specific payload
|
|
395
|
+
const eventTypePayload = this.buildEventTypePayload(request);
|
|
396
|
+
Object.assign(eventBody, eventTypePayload);
|
|
208
397
|
// Create event with retry logic
|
|
209
398
|
const response = await retryWithBackoff(async () => {
|
|
210
399
|
return (await this.calendarClient.events.insert({
|
|
@@ -246,17 +435,18 @@ export class GoogleCalendarService {
|
|
|
246
435
|
}
|
|
247
436
|
/**
|
|
248
437
|
* Update a calendar event
|
|
249
|
-
* Requirement: 4, 10 (Calendar event updates with partial updates and
|
|
438
|
+
* Requirement: 4, 10, 4.5, 5.3, 6.6 (Calendar event updates with partial updates, retry logic, and event type restrictions)
|
|
250
439
|
*
|
|
251
440
|
* Updates an existing event in Google Calendar using the patch API for partial updates.
|
|
252
441
|
* Supports all-day events, reminders, attendees, and recurring events.
|
|
253
442
|
* Includes retry logic with exponential backoff for transient failures.
|
|
443
|
+
* Enforces event type restrictions (birthday and fromGmail events have limited updatable fields).
|
|
254
444
|
*
|
|
255
445
|
* @param eventId - Event ID to update
|
|
256
446
|
* @param updates - Partial CreateEventRequest with fields to update
|
|
257
447
|
* @param calendarId - Calendar ID (optional, defaults to 'primary')
|
|
258
448
|
* @returns Updated calendar event
|
|
259
|
-
* @throws Error if authentication fails
|
|
449
|
+
* @throws Error if authentication fails, API request fails after retries, or disallowed fields are being updated
|
|
260
450
|
*/
|
|
261
451
|
async updateEvent(eventId, updates, calendarId) {
|
|
262
452
|
// Ensure client is authenticated
|
|
@@ -265,6 +455,43 @@ export class GoogleCalendarService {
|
|
|
265
455
|
}
|
|
266
456
|
const targetCalendarId = calendarId || 'primary';
|
|
267
457
|
try {
|
|
458
|
+
// Step 1: Fetch existing event to determine its eventType
|
|
459
|
+
// Requirement: 4.5, 5.3, 6.6 - Event type update restrictions
|
|
460
|
+
const existingEvent = await retryWithBackoff(async () => {
|
|
461
|
+
return (await this.calendarClient.events.get({
|
|
462
|
+
calendarId: targetCalendarId,
|
|
463
|
+
eventId: eventId,
|
|
464
|
+
})).data;
|
|
465
|
+
}, {
|
|
466
|
+
maxAttempts: 3,
|
|
467
|
+
initialDelay: 1000,
|
|
468
|
+
shouldRetry: (error) => {
|
|
469
|
+
const message = error.message.toLowerCase();
|
|
470
|
+
if (message.includes('not found') ||
|
|
471
|
+
message.includes('404')) {
|
|
472
|
+
return false;
|
|
473
|
+
}
|
|
474
|
+
if (message.includes('unauthorized') ||
|
|
475
|
+
message.includes('401') ||
|
|
476
|
+
message.includes('forbidden') ||
|
|
477
|
+
message.includes('403')) {
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
if (message.includes('rate limit') ||
|
|
481
|
+
message.includes('429') ||
|
|
482
|
+
message.includes('500') ||
|
|
483
|
+
message.includes('503') ||
|
|
484
|
+
message.includes('service unavailable') ||
|
|
485
|
+
message.includes('temporary')) {
|
|
486
|
+
return true;
|
|
487
|
+
}
|
|
488
|
+
return true;
|
|
489
|
+
},
|
|
490
|
+
});
|
|
491
|
+
// Step 2: Detect the event type using the helper function
|
|
492
|
+
const eventType = detectEventType(existingEvent);
|
|
493
|
+
// Step 3: Validate that the update fields are allowed for this event type
|
|
494
|
+
validateUpdateFieldsForEventType(eventType, updates);
|
|
268
495
|
// Build Google Calendar patch object (only include provided fields)
|
|
269
496
|
const patchBody = {};
|
|
270
497
|
// Handle title
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-calendar-service.js","sourceRoot":"","sources":["../../src/integrations/google-calendar-service.ts"],"names":[],"mappings":"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"}
|
|
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,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encryption Service for OAuth Data
|
|
3
|
+
* Requirements: FR-4 (Encryption Key Management)
|
|
4
|
+
*
|
|
5
|
+
* Provides AES-256-GCM encryption/decryption for sensitive OAuth data.
|
|
6
|
+
* Supports key derivation via scrypt and secure key management.
|
|
7
|
+
*/
|
|
8
|
+
import { FileMutexMetrics } from './file-mutex.js';
|
|
9
|
+
/**
|
|
10
|
+
* Encryption Service Configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface EncryptionServiceConfig {
|
|
13
|
+
encryptionKey?: string;
|
|
14
|
+
keyStoragePath?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Encryption Service Class
|
|
18
|
+
*
|
|
19
|
+
* Handles AES-256-GCM encryption/decryption for OAuth data persistence.
|
|
20
|
+
* Manages encryption key lifecycle and secure file operations.
|
|
21
|
+
*/
|
|
22
|
+
export declare class EncryptionService {
|
|
23
|
+
private encryptionKey;
|
|
24
|
+
private keyStoragePath;
|
|
25
|
+
private initialized;
|
|
26
|
+
private fileMutex;
|
|
27
|
+
constructor(config?: EncryptionServiceConfig);
|
|
28
|
+
/**
|
|
29
|
+
* Initialize encryption service and load/generate key
|
|
30
|
+
*
|
|
31
|
+
* Key loading priority:
|
|
32
|
+
* 1. SAGE_ENCRYPTION_KEY environment variable (highest priority)
|
|
33
|
+
* 2. Persistent key file at ~/.sage/oauth_encryption_key
|
|
34
|
+
* 3. Generate new key and save (with warning)
|
|
35
|
+
*/
|
|
36
|
+
initialize(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Encrypt data using AES-256-GCM
|
|
39
|
+
*
|
|
40
|
+
* Format: salt:iv:authTag:encrypted
|
|
41
|
+
*
|
|
42
|
+
* @param data - Plain text data to encrypt
|
|
43
|
+
* @returns Encrypted data in format "salt:iv:authTag:encrypted"
|
|
44
|
+
*/
|
|
45
|
+
encrypt(data: string): Promise<string>;
|
|
46
|
+
/**
|
|
47
|
+
* Decrypt data using AES-256-GCM
|
|
48
|
+
*
|
|
49
|
+
* @param encryptedData - Encrypted data in format "salt:iv:authTag:encrypted"
|
|
50
|
+
* @returns Decrypted plain text data
|
|
51
|
+
*/
|
|
52
|
+
decrypt(encryptedData: string): Promise<string>;
|
|
53
|
+
/**
|
|
54
|
+
* Encrypt and save data to file
|
|
55
|
+
*
|
|
56
|
+
* Uses atomic write pattern (temp file + rename) to prevent corruption.
|
|
57
|
+
* Serialized with mutex to prevent concurrent write race conditions.
|
|
58
|
+
*
|
|
59
|
+
* @param data - Plain text data to encrypt and save
|
|
60
|
+
* @param filePath - Destination file path
|
|
61
|
+
*/
|
|
62
|
+
encryptToFile(data: string, filePath: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Load and decrypt data from file
|
|
65
|
+
*
|
|
66
|
+
* Serialized with mutex to prevent read-during-write issues.
|
|
67
|
+
*
|
|
68
|
+
* @param filePath - Source file path
|
|
69
|
+
* @returns Decrypted data or null if file doesn't exist
|
|
70
|
+
*/
|
|
71
|
+
decryptFromFile(filePath: string): Promise<string | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if encryption service is initialized
|
|
74
|
+
*/
|
|
75
|
+
isInitialized(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Get the storage path for the encryption key
|
|
78
|
+
*/
|
|
79
|
+
getKeyStoragePath(): string;
|
|
80
|
+
/**
|
|
81
|
+
* Get health status for monitoring
|
|
82
|
+
*/
|
|
83
|
+
getHealthStatus(): {
|
|
84
|
+
initialized: boolean;
|
|
85
|
+
keySource: 'environment' | 'file' | 'generated';
|
|
86
|
+
keyStoragePath: string;
|
|
87
|
+
mutex: FileMutexMetrics;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Get mutex metrics for monitoring
|
|
91
|
+
*/
|
|
92
|
+
getMutexMetrics(): FileMutexMetrics;
|
|
93
|
+
/**
|
|
94
|
+
* Wait for all pending file operations to complete
|
|
95
|
+
*
|
|
96
|
+
* Used for graceful shutdown to ensure all data is persisted.
|
|
97
|
+
*/
|
|
98
|
+
waitForPendingWrites(): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Check if there are pending file operations
|
|
101
|
+
*/
|
|
102
|
+
hasPendingWrites(): boolean;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=encryption-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-service.d.ts","sourceRoot":"","sources":["../../src/oauth/encryption-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAa,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAA8B;gBAEnC,MAAM,GAAE,uBAA4B;IAKhD;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDjC;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5C;;;;;OAKG;IACG,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCrD;;;;;;;;OAQG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyClE;;;;;;;OAOG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB/D;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,eAAe,IAAI;QACjB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;QAChD,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,gBAAgB,CAAC;KACzB;IAgBD;;OAEG;IACH,eAAe,IAAI,gBAAgB;IAInC;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;OAEG;IACH,gBAAgB,IAAI,OAAO;CAG5B"}
|