@shin1ohno/sage 0.8.8 → 0.9.3

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 (110) 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 +71 -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/index.js +11 -10
  18. package/dist/index.js.map +1 -1
  19. package/dist/integrations/apple-reminders.d.ts.map +1 -1
  20. package/dist/integrations/apple-reminders.js +6 -5
  21. package/dist/integrations/apple-reminders.js.map +1 -1
  22. package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
  23. package/dist/integrations/calendar-event-creator.js +2 -1
  24. package/dist/integrations/calendar-event-creator.js.map +1 -1
  25. package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
  26. package/dist/integrations/calendar-event-deleter.js +2 -1
  27. package/dist/integrations/calendar-event-deleter.js.map +1 -1
  28. package/dist/integrations/calendar-event-response.d.ts.map +1 -1
  29. package/dist/integrations/calendar-event-response.js +4 -3
  30. package/dist/integrations/calendar-event-response.js.map +1 -1
  31. package/dist/integrations/calendar-service.d.ts +14 -0
  32. package/dist/integrations/calendar-service.d.ts.map +1 -1
  33. package/dist/integrations/calendar-service.js +6 -5
  34. package/dist/integrations/calendar-service.js.map +1 -1
  35. package/dist/integrations/calendar-source-manager.d.ts +86 -3
  36. package/dist/integrations/calendar-source-manager.d.ts.map +1 -1
  37. package/dist/integrations/calendar-source-manager.js +152 -20
  38. package/dist/integrations/calendar-source-manager.js.map +1 -1
  39. package/dist/integrations/google-calendar-service.d.ts +55 -3
  40. package/dist/integrations/google-calendar-service.d.ts.map +1 -1
  41. package/dist/integrations/google-calendar-service.js +215 -5
  42. package/dist/integrations/google-calendar-service.js.map +1 -1
  43. package/dist/integrations/notion-mcp.d.ts.map +1 -1
  44. package/dist/integrations/notion-mcp.js +5 -4
  45. package/dist/integrations/notion-mcp.js.map +1 -1
  46. package/dist/integrations/todo-list-manager.d.ts.map +1 -1
  47. package/dist/integrations/todo-list-manager.js +3 -2
  48. package/dist/integrations/todo-list-manager.js.map +1 -1
  49. package/dist/oauth/encryption-service.d.ts +104 -0
  50. package/dist/oauth/encryption-service.d.ts.map +1 -0
  51. package/dist/oauth/encryption-service.js +271 -0
  52. package/dist/oauth/encryption-service.js.map +1 -0
  53. package/dist/oauth/file-mutex.d.ts +68 -0
  54. package/dist/oauth/file-mutex.d.ts.map +1 -0
  55. package/dist/oauth/file-mutex.js +141 -0
  56. package/dist/oauth/file-mutex.js.map +1 -0
  57. package/dist/oauth/google-oauth-handler.d.ts +8 -9
  58. package/dist/oauth/google-oauth-handler.d.ts.map +1 -1
  59. package/dist/oauth/google-oauth-handler.js +30 -65
  60. package/dist/oauth/google-oauth-handler.js.map +1 -1
  61. package/dist/oauth/index.d.ts +1 -0
  62. package/dist/oauth/index.d.ts.map +1 -1
  63. package/dist/oauth/index.js +2 -0
  64. package/dist/oauth/index.js.map +1 -1
  65. package/dist/oauth/oauth-server.d.ts +61 -1
  66. package/dist/oauth/oauth-server.d.ts.map +1 -1
  67. package/dist/oauth/oauth-server.js +177 -40
  68. package/dist/oauth/oauth-server.js.map +1 -1
  69. package/dist/oauth/persistent-client-store.d.ts +58 -0
  70. package/dist/oauth/persistent-client-store.d.ts.map +1 -0
  71. package/dist/oauth/persistent-client-store.js +188 -0
  72. package/dist/oauth/persistent-client-store.js.map +1 -0
  73. package/dist/oauth/persistent-refresh-token-store.d.ts +77 -0
  74. package/dist/oauth/persistent-refresh-token-store.d.ts.map +1 -0
  75. package/dist/oauth/persistent-refresh-token-store.js +226 -0
  76. package/dist/oauth/persistent-refresh-token-store.js.map +1 -0
  77. package/dist/oauth/persistent-session-store.d.ts +69 -0
  78. package/dist/oauth/persistent-session-store.d.ts.map +1 -0
  79. package/dist/oauth/persistent-session-store.js +155 -0
  80. package/dist/oauth/persistent-session-store.js.map +1 -0
  81. package/dist/oauth/session-store.d.ts +31 -0
  82. package/dist/oauth/session-store.d.ts.map +1 -0
  83. package/dist/oauth/session-store.js +47 -0
  84. package/dist/oauth/session-store.js.map +1 -0
  85. package/dist/remote/cloud-config.d.ts.map +1 -1
  86. package/dist/remote/cloud-config.js +2 -1
  87. package/dist/remote/cloud-config.js.map +1 -1
  88. package/dist/services/container.d.ts.map +1 -1
  89. package/dist/services/container.js +3 -2
  90. package/dist/services/container.js.map +1 -1
  91. package/dist/services/working-cadence.d.ts +37 -1
  92. package/dist/services/working-cadence.d.ts.map +1 -1
  93. package/dist/services/working-cadence.js +152 -13
  94. package/dist/services/working-cadence.js.map +1 -1
  95. package/dist/tools/calendar/handlers.d.ts +82 -3
  96. package/dist/tools/calendar/handlers.d.ts.map +1 -1
  97. package/dist/tools/calendar/handlers.js +200 -16
  98. package/dist/tools/calendar/handlers.js.map +1 -1
  99. package/dist/types/google-calendar-types.d.ts +150 -3
  100. package/dist/types/google-calendar-types.d.ts.map +1 -1
  101. package/dist/types/google-calendar-types.js +79 -2
  102. package/dist/types/google-calendar-types.js.map +1 -1
  103. package/dist/types/task.d.ts +14 -0
  104. package/dist/types/task.d.ts.map +1 -1
  105. package/dist/utils/logger.d.ts +28 -0
  106. package/dist/utils/logger.d.ts.map +1 -0
  107. package/dist/utils/logger.js +61 -0
  108. package/dist/utils/logger.js.map +1 -0
  109. package/dist/version.js +1 -1
  110. package/package.json +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"todo-list-manager.js","sourceRoot":"","sources":["../../src/integrations/todo-list-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todo-list-manager.js","sourceRoot":"","sources":["../../src/integrations/todo-list-manager.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;AAK9D;;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;IAwClE;;;;;;;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"}
@@ -0,0 +1,271 @@
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 { createCipheriv, createDecipheriv, randomBytes, scrypt } from 'crypto';
9
+ import { promisify } from 'util';
10
+ import { readFile, writeFile, mkdir, chmod, unlink, rename } from 'fs/promises';
11
+ import { join, dirname } from 'path';
12
+ import { homedir } from 'os';
13
+ import { existsSync } from 'fs';
14
+ import { FileMutex } from './file-mutex.js';
15
+ import { oauthLogger } from '../utils/logger.js';
16
+ const scryptAsync = promisify(scrypt);
17
+ /**
18
+ * Encryption Service Class
19
+ *
20
+ * Handles AES-256-GCM encryption/decryption for OAuth data persistence.
21
+ * Manages encryption key lifecycle and secure file operations.
22
+ */
23
+ export class EncryptionService {
24
+ encryptionKey;
25
+ keyStoragePath;
26
+ initialized = false;
27
+ fileMutex = new FileMutex();
28
+ constructor(config = {}) {
29
+ this.keyStoragePath = config.keyStoragePath || join(homedir(), '.sage', 'oauth_encryption_key');
30
+ this.encryptionKey = config.encryptionKey || '';
31
+ }
32
+ /**
33
+ * Initialize encryption service and load/generate key
34
+ *
35
+ * Key loading priority:
36
+ * 1. SAGE_ENCRYPTION_KEY environment variable (highest priority)
37
+ * 2. Persistent key file at ~/.sage/oauth_encryption_key
38
+ * 3. Generate new key and save (with warning)
39
+ */
40
+ async initialize() {
41
+ if (this.initialized) {
42
+ return; // Already initialized
43
+ }
44
+ // Priority 1: Use SAGE_ENCRYPTION_KEY environment variable
45
+ if (process.env.SAGE_ENCRYPTION_KEY) {
46
+ this.encryptionKey = process.env.SAGE_ENCRYPTION_KEY;
47
+ oauthLogger.info('Using encryption key from SAGE_ENCRYPTION_KEY environment variable');
48
+ this.initialized = true;
49
+ return;
50
+ }
51
+ // Priority 2: Load existing key from storage
52
+ if (existsSync(this.keyStoragePath)) {
53
+ try {
54
+ this.encryptionKey = (await readFile(this.keyStoragePath, 'utf-8')).trim();
55
+ oauthLogger.info('Loaded encryption key from storage');
56
+ this.initialized = true;
57
+ return;
58
+ }
59
+ catch (error) {
60
+ oauthLogger.error({ err: error }, 'Failed to load encryption key');
61
+ // Fall through to generation
62
+ }
63
+ }
64
+ // Priority 3: Generate new key and store it
65
+ oauthLogger.warn('No encryption key found. Generating new key...');
66
+ oauthLogger.warn('Warning: Set SAGE_ENCRYPTION_KEY environment variable for production use');
67
+ this.encryptionKey = randomBytes(32).toString('hex');
68
+ // Ensure directory exists with secure permissions
69
+ const dir = join(homedir(), '.sage');
70
+ await mkdir(dir, { recursive: true, mode: 0o700 });
71
+ // Write key with restricted permissions (read/write for owner only)
72
+ await writeFile(this.keyStoragePath, this.encryptionKey, { mode: 0o600 });
73
+ // Ensure permissions are set correctly (some systems ignore mode in writeFile)
74
+ try {
75
+ await chmod(this.keyStoragePath, 0o600);
76
+ }
77
+ catch (error) {
78
+ // chmod may fail on Windows, log but continue
79
+ oauthLogger.warn('Could not set file permissions (may not be supported on this OS)');
80
+ }
81
+ oauthLogger.info({ path: this.keyStoragePath }, 'Generated encryption key stored');
82
+ this.initialized = true;
83
+ }
84
+ /**
85
+ * Encrypt data using AES-256-GCM
86
+ *
87
+ * Format: salt:iv:authTag:encrypted
88
+ *
89
+ * @param data - Plain text data to encrypt
90
+ * @returns Encrypted data in format "salt:iv:authTag:encrypted"
91
+ */
92
+ async encrypt(data) {
93
+ if (!this.initialized) {
94
+ throw new Error('EncryptionService not initialized. Call initialize() first.');
95
+ }
96
+ try {
97
+ // Generate salt and derive key using scrypt
98
+ const salt = randomBytes(16);
99
+ const key = (await scryptAsync(this.encryptionKey, salt, 32));
100
+ // Generate initialization vector
101
+ const iv = randomBytes(16);
102
+ // Create cipher
103
+ const cipher = createCipheriv('aes-256-gcm', key, iv);
104
+ // Encrypt data
105
+ let encrypted = cipher.update(data, 'utf8', 'hex');
106
+ encrypted += cipher.final('hex');
107
+ // Get authentication tag for integrity verification
108
+ const authTag = cipher.getAuthTag();
109
+ // Combine: salt:iv:authTag:encrypted
110
+ return `${salt.toString('hex')}:${iv.toString('hex')}:${authTag.toString('hex')}:${encrypted}`;
111
+ }
112
+ catch (error) {
113
+ oauthLogger.error({ err: error }, 'Encryption failed');
114
+ throw new Error('Failed to encrypt data');
115
+ }
116
+ }
117
+ /**
118
+ * Decrypt data using AES-256-GCM
119
+ *
120
+ * @param encryptedData - Encrypted data in format "salt:iv:authTag:encrypted"
121
+ * @returns Decrypted plain text data
122
+ */
123
+ async decrypt(encryptedData) {
124
+ if (!this.initialized) {
125
+ throw new Error('EncryptionService not initialized. Call initialize() first.');
126
+ }
127
+ try {
128
+ // Split encrypted data
129
+ const parts = encryptedData.split(':');
130
+ if (parts.length !== 4) {
131
+ throw new Error('Invalid encrypted data format');
132
+ }
133
+ const [saltHex, ivHex, authTagHex, encrypted] = parts;
134
+ // Convert from hex
135
+ const salt = Buffer.from(saltHex, 'hex');
136
+ const iv = Buffer.from(ivHex, 'hex');
137
+ const authTag = Buffer.from(authTagHex, 'hex');
138
+ // Derive key from encryption key using scrypt
139
+ const key = (await scryptAsync(this.encryptionKey, salt, 32));
140
+ // Create decipher
141
+ const decipher = createDecipheriv('aes-256-gcm', key, iv);
142
+ decipher.setAuthTag(authTag);
143
+ // Decrypt data
144
+ let decrypted = decipher.update(encrypted, 'hex', 'utf8');
145
+ decrypted += decipher.final('utf8');
146
+ return decrypted;
147
+ }
148
+ catch (error) {
149
+ oauthLogger.error({ err: error }, 'Decryption failed');
150
+ throw new Error('Failed to decrypt data');
151
+ }
152
+ }
153
+ /**
154
+ * Encrypt and save data to file
155
+ *
156
+ * Uses atomic write pattern (temp file + rename) to prevent corruption.
157
+ * Serialized with mutex to prevent concurrent write race conditions.
158
+ *
159
+ * @param data - Plain text data to encrypt and save
160
+ * @param filePath - Destination file path
161
+ */
162
+ async encryptToFile(data, filePath) {
163
+ await this.fileMutex.withLock(filePath, async () => {
164
+ const encrypted = await this.encrypt(data);
165
+ // Ensure directory exists with secure permissions
166
+ const dir = dirname(filePath);
167
+ await mkdir(dir, { recursive: true, mode: 0o700 });
168
+ // Atomic write using temp file + rename pattern
169
+ const tempPath = `${filePath}.tmp`;
170
+ try {
171
+ // Write to temp file with restricted permissions
172
+ await writeFile(tempPath, encrypted, { mode: 0o600 });
173
+ // Ensure permissions are set (some systems ignore mode in writeFile)
174
+ try {
175
+ await chmod(tempPath, 0o600);
176
+ }
177
+ catch (error) {
178
+ // chmod may fail on Windows, log but continue
179
+ oauthLogger.warn('Could not set file permissions (may not be supported on this OS)');
180
+ }
181
+ // Rename is atomic on most filesystems - prevents corruption
182
+ await rename(tempPath, filePath);
183
+ }
184
+ catch (error) {
185
+ oauthLogger.error({ err: error, filePath }, 'Failed to write file');
186
+ // Clean up temp file if it exists
187
+ try {
188
+ await unlink(tempPath);
189
+ }
190
+ catch {
191
+ // Ignore cleanup errors
192
+ }
193
+ throw error;
194
+ }
195
+ });
196
+ }
197
+ /**
198
+ * Load and decrypt data from file
199
+ *
200
+ * Serialized with mutex to prevent read-during-write issues.
201
+ *
202
+ * @param filePath - Source file path
203
+ * @returns Decrypted data or null if file doesn't exist
204
+ */
205
+ async decryptFromFile(filePath) {
206
+ return await this.fileMutex.withLock(filePath, async () => {
207
+ try {
208
+ if (!existsSync(filePath)) {
209
+ return null;
210
+ }
211
+ const encrypted = await readFile(filePath, 'utf-8');
212
+ return await this.decrypt(encrypted);
213
+ }
214
+ catch (error) {
215
+ oauthLogger.error({ err: error, filePath }, 'Failed to decrypt file');
216
+ return null;
217
+ }
218
+ });
219
+ }
220
+ /**
221
+ * Check if encryption service is initialized
222
+ */
223
+ isInitialized() {
224
+ return this.initialized;
225
+ }
226
+ /**
227
+ * Get the storage path for the encryption key
228
+ */
229
+ getKeyStoragePath() {
230
+ return this.keyStoragePath;
231
+ }
232
+ /**
233
+ * Get health status for monitoring
234
+ */
235
+ getHealthStatus() {
236
+ let keySource = 'generated';
237
+ if (process.env.SAGE_ENCRYPTION_KEY) {
238
+ keySource = 'environment';
239
+ }
240
+ else if (existsSync(this.keyStoragePath)) {
241
+ keySource = 'file';
242
+ }
243
+ return {
244
+ initialized: this.initialized,
245
+ keySource,
246
+ keyStoragePath: this.keyStoragePath,
247
+ mutex: this.fileMutex.getMetrics(),
248
+ };
249
+ }
250
+ /**
251
+ * Get mutex metrics for monitoring
252
+ */
253
+ getMutexMetrics() {
254
+ return this.fileMutex.getMetrics();
255
+ }
256
+ /**
257
+ * Wait for all pending file operations to complete
258
+ *
259
+ * Used for graceful shutdown to ensure all data is persisted.
260
+ */
261
+ async waitForPendingWrites() {
262
+ await this.fileMutex.waitForPending();
263
+ }
264
+ /**
265
+ * Check if there are pending file operations
266
+ */
267
+ hasPendingWrites() {
268
+ return this.fileMutex.hasPendingOperations();
269
+ }
270
+ }
271
+ //# sourceMappingURL=encryption-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-service.js","sourceRoot":"","sources":["../../src/oauth/encryption-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * File Mutex for Serializing File Operations
3
+ * Requirements: FR-1 (File Write Serialization), FR-2 (Per-File Mutex)
4
+ *
5
+ * Provides per-file mutex to prevent race conditions during concurrent
6
+ * encrypted file operations. Uses Promise queue pattern for serialization.
7
+ */
8
+ /**
9
+ * Metrics for monitoring mutex performance
10
+ */
11
+ export interface FileMutexMetrics {
12
+ activeFiles: number;
13
+ totalWaitTimeMs: number;
14
+ longestWaitMs: number;
15
+ queueDepthWarnings: number;
16
+ }
17
+ /**
18
+ * File Mutex Class
19
+ *
20
+ * Provides per-file locking mechanism to serialize file operations.
21
+ * Each file path gets its own independent mutex, allowing parallel
22
+ * operations on different files while serializing operations on the same file.
23
+ */
24
+ export declare class FileMutex {
25
+ private locks;
26
+ private metrics;
27
+ private static readonly QUEUE_DEPTH_WARNING_THRESHOLD;
28
+ private static readonly WAIT_TIME_WARNING_THRESHOLD_MS;
29
+ /**
30
+ * Execute an operation with exclusive lock on the specified file
31
+ *
32
+ * @param filePath - Path to the file to lock
33
+ * @param operation - Async operation to execute while holding the lock
34
+ * @returns Result of the operation
35
+ */
36
+ withLock<T>(filePath: string, operation: () => Promise<T>): Promise<T>;
37
+ /**
38
+ * Normalize file path for consistent lock identification
39
+ */
40
+ private normalizePath;
41
+ /**
42
+ * Check and warn if queue depth exceeds threshold
43
+ */
44
+ private checkQueueWarnings;
45
+ /**
46
+ * Record wait time and log if exceeds thresholds
47
+ */
48
+ private recordWaitTime;
49
+ /**
50
+ * Get metrics for monitoring/debugging
51
+ */
52
+ getMetrics(): FileMutexMetrics;
53
+ /**
54
+ * Check if there are pending operations for any file
55
+ */
56
+ hasPendingOperations(): boolean;
57
+ /**
58
+ * Wait for all pending operations to complete
59
+ *
60
+ * Used for graceful shutdown to ensure all queued operations finish.
61
+ */
62
+ waitForPending(): Promise<void>;
63
+ /**
64
+ * Reset metrics (primarily for testing)
65
+ */
66
+ resetMetrics(): void;
67
+ }
68
+ //# sourceMappingURL=file-mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-mutex.d.ts","sourceRoot":"","sources":["../../src/oauth/file-mutex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAaD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAKb;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAM;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAQ;IAE9D;;;;;;OAMG;IACG,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyC5E;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,UAAU,IAAI,gBAAgB;IAI9B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAS/B;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;OAEG;IACH,YAAY,IAAI,IAAI;CAQrB"}