@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.
Files changed (78) hide show
  1. package/README.md +31 -0
  2. package/dist/cli/http-server-with-config.d.ts +2 -0
  3. package/dist/cli/http-server-with-config.d.ts.map +1 -1
  4. package/dist/cli/http-server-with-config.js +70 -0
  5. package/dist/cli/http-server-with-config.js.map +1 -1
  6. package/dist/cli/main-entry.d.ts.map +1 -1
  7. package/dist/cli/main-entry.js +1 -0
  8. package/dist/cli/main-entry.js.map +1 -1
  9. package/dist/cli/parser.d.ts +2 -0
  10. package/dist/cli/parser.d.ts.map +1 -1
  11. package/dist/cli/parser.js +7 -0
  12. package/dist/cli/parser.js.map +1 -1
  13. package/dist/config/validation.d.ts +721 -0
  14. package/dist/config/validation.d.ts.map +1 -1
  15. package/dist/config/validation.js +203 -0
  16. package/dist/config/validation.js.map +1 -1
  17. package/dist/integrations/calendar-service.d.ts +14 -0
  18. package/dist/integrations/calendar-service.d.ts.map +1 -1
  19. package/dist/integrations/calendar-service.js.map +1 -1
  20. package/dist/integrations/calendar-source-manager.d.ts +86 -3
  21. package/dist/integrations/calendar-source-manager.d.ts.map +1 -1
  22. package/dist/integrations/calendar-source-manager.js +146 -15
  23. package/dist/integrations/calendar-source-manager.js.map +1 -1
  24. package/dist/integrations/google-calendar-service.d.ts +65 -3
  25. package/dist/integrations/google-calendar-service.d.ts.map +1 -1
  26. package/dist/integrations/google-calendar-service.js +233 -6
  27. package/dist/integrations/google-calendar-service.js.map +1 -1
  28. package/dist/oauth/encryption-service.d.ts +104 -0
  29. package/dist/oauth/encryption-service.d.ts.map +1 -0
  30. package/dist/oauth/encryption-service.js +271 -0
  31. package/dist/oauth/encryption-service.js.map +1 -0
  32. package/dist/oauth/file-mutex.d.ts +68 -0
  33. package/dist/oauth/file-mutex.d.ts.map +1 -0
  34. package/dist/oauth/file-mutex.js +140 -0
  35. package/dist/oauth/file-mutex.js.map +1 -0
  36. package/dist/oauth/google-oauth-handler.d.ts +8 -9
  37. package/dist/oauth/google-oauth-handler.d.ts.map +1 -1
  38. package/dist/oauth/google-oauth-handler.js +30 -65
  39. package/dist/oauth/google-oauth-handler.js.map +1 -1
  40. package/dist/oauth/index.d.ts +1 -0
  41. package/dist/oauth/index.d.ts.map +1 -1
  42. package/dist/oauth/index.js +2 -0
  43. package/dist/oauth/index.js.map +1 -1
  44. package/dist/oauth/oauth-server.d.ts +61 -1
  45. package/dist/oauth/oauth-server.d.ts.map +1 -1
  46. package/dist/oauth/oauth-server.js +181 -40
  47. package/dist/oauth/oauth-server.js.map +1 -1
  48. package/dist/oauth/persistent-client-store.d.ts +58 -0
  49. package/dist/oauth/persistent-client-store.d.ts.map +1 -0
  50. package/dist/oauth/persistent-client-store.js +187 -0
  51. package/dist/oauth/persistent-client-store.js.map +1 -0
  52. package/dist/oauth/persistent-refresh-token-store.d.ts +77 -0
  53. package/dist/oauth/persistent-refresh-token-store.d.ts.map +1 -0
  54. package/dist/oauth/persistent-refresh-token-store.js +225 -0
  55. package/dist/oauth/persistent-refresh-token-store.js.map +1 -0
  56. package/dist/oauth/persistent-session-store.d.ts +69 -0
  57. package/dist/oauth/persistent-session-store.d.ts.map +1 -0
  58. package/dist/oauth/persistent-session-store.js +154 -0
  59. package/dist/oauth/persistent-session-store.js.map +1 -0
  60. package/dist/oauth/session-store.d.ts +31 -0
  61. package/dist/oauth/session-store.d.ts.map +1 -0
  62. package/dist/oauth/session-store.js +47 -0
  63. package/dist/oauth/session-store.js.map +1 -0
  64. package/dist/services/working-cadence.d.ts +37 -1
  65. package/dist/services/working-cadence.d.ts.map +1 -1
  66. package/dist/services/working-cadence.js +151 -13
  67. package/dist/services/working-cadence.js.map +1 -1
  68. package/dist/tools/calendar/handlers.d.ts +82 -3
  69. package/dist/tools/calendar/handlers.d.ts.map +1 -1
  70. package/dist/tools/calendar/handlers.js +200 -16
  71. package/dist/tools/calendar/handlers.js.map +1 -1
  72. package/dist/types/google-calendar-types.d.ts +150 -3
  73. package/dist/types/google-calendar-types.d.ts.map +1 -1
  74. package/dist/types/google-calendar-types.js +79 -2
  75. package/dist/types/google-calendar-types.js.map +1 -1
  76. package/dist/types/task.d.ts +14 -0
  77. package/dist/types/task.d.ts.map +1 -1
  78. 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
- return allEvents.map(event => convertGoogleToCalendarEvent(event));
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 retry logic)
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 or API request fails after retries
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"}