@shin1ohno/sage 0.8.8 → 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 +55 -3
- package/dist/integrations/google-calendar-service.d.ts.map +1 -1
- package/dist/integrations/google-calendar-service.js +213 -4
- 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,102 @@ 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
|
+
}
|
|
84
240
|
/**
|
|
85
241
|
* Normalize date string to RFC3339 format required by Google Calendar API
|
|
86
242
|
*
|
|
@@ -164,7 +320,16 @@ export class GoogleCalendarService {
|
|
|
164
320
|
pageToken = response.nextPageToken || undefined;
|
|
165
321
|
} while (pageToken);
|
|
166
322
|
// Convert GoogleCalendarEvent[] to CalendarEvent[]
|
|
167
|
-
|
|
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;
|
|
168
333
|
}
|
|
169
334
|
catch (error) {
|
|
170
335
|
throw new Error(`Failed to list events from Google Calendar: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
@@ -184,6 +349,9 @@ export class GoogleCalendarService {
|
|
|
184
349
|
* @throws Error if authentication fails or API request fails after retries
|
|
185
350
|
*/
|
|
186
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);
|
|
187
355
|
// Ensure client is authenticated
|
|
188
356
|
if (!this.calendarClient) {
|
|
189
357
|
await this.authenticate();
|
|
@@ -223,6 +391,9 @@ export class GoogleCalendarService {
|
|
|
223
391
|
if (request.reminders) {
|
|
224
392
|
eventBody.reminders = request.reminders;
|
|
225
393
|
}
|
|
394
|
+
// Build and merge event type-specific payload
|
|
395
|
+
const eventTypePayload = this.buildEventTypePayload(request);
|
|
396
|
+
Object.assign(eventBody, eventTypePayload);
|
|
226
397
|
// Create event with retry logic
|
|
227
398
|
const response = await retryWithBackoff(async () => {
|
|
228
399
|
return (await this.calendarClient.events.insert({
|
|
@@ -264,17 +435,18 @@ export class GoogleCalendarService {
|
|
|
264
435
|
}
|
|
265
436
|
/**
|
|
266
437
|
* Update a calendar event
|
|
267
|
-
* 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)
|
|
268
439
|
*
|
|
269
440
|
* Updates an existing event in Google Calendar using the patch API for partial updates.
|
|
270
441
|
* Supports all-day events, reminders, attendees, and recurring events.
|
|
271
442
|
* Includes retry logic with exponential backoff for transient failures.
|
|
443
|
+
* Enforces event type restrictions (birthday and fromGmail events have limited updatable fields).
|
|
272
444
|
*
|
|
273
445
|
* @param eventId - Event ID to update
|
|
274
446
|
* @param updates - Partial CreateEventRequest with fields to update
|
|
275
447
|
* @param calendarId - Calendar ID (optional, defaults to 'primary')
|
|
276
448
|
* @returns Updated calendar event
|
|
277
|
-
* @throws Error if authentication fails
|
|
449
|
+
* @throws Error if authentication fails, API request fails after retries, or disallowed fields are being updated
|
|
278
450
|
*/
|
|
279
451
|
async updateEvent(eventId, updates, calendarId) {
|
|
280
452
|
// Ensure client is authenticated
|
|
@@ -283,6 +455,43 @@ export class GoogleCalendarService {
|
|
|
283
455
|
}
|
|
284
456
|
const targetCalendarId = calendarId || 'primary';
|
|
285
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);
|
|
286
495
|
// Build Google Calendar patch object (only include provided fields)
|
|
287
496
|
const patchBody = {};
|
|
288
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"}
|