@pan-sec/notebooklm-mcp 1.4.0 → 1.6.0

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 (123) hide show
  1. package/README.md +61 -7
  2. package/SECURITY.md +40 -6
  3. package/dist/auth/mcp-auth.d.ts.map +1 -1
  4. package/dist/auth/mcp-auth.js +3 -6
  5. package/dist/auth/mcp-auth.js.map +1 -1
  6. package/dist/compliance/alert-manager.d.ts +120 -0
  7. package/dist/compliance/alert-manager.d.ts.map +1 -0
  8. package/dist/compliance/alert-manager.js +420 -0
  9. package/dist/compliance/alert-manager.js.map +1 -0
  10. package/dist/compliance/breach-detection.d.ts +134 -0
  11. package/dist/compliance/breach-detection.d.ts.map +1 -0
  12. package/dist/compliance/breach-detection.js +456 -0
  13. package/dist/compliance/breach-detection.js.map +1 -0
  14. package/dist/compliance/change-log.d.ts +113 -0
  15. package/dist/compliance/change-log.d.ts.map +1 -0
  16. package/dist/compliance/change-log.js +275 -0
  17. package/dist/compliance/change-log.js.map +1 -0
  18. package/dist/compliance/compliance-logger.d.ts +136 -0
  19. package/dist/compliance/compliance-logger.d.ts.map +1 -0
  20. package/dist/compliance/compliance-logger.js +425 -0
  21. package/dist/compliance/compliance-logger.js.map +1 -0
  22. package/dist/compliance/compliance-tools.d.ts +18 -0
  23. package/dist/compliance/compliance-tools.d.ts.map +1 -0
  24. package/dist/compliance/compliance-tools.js +673 -0
  25. package/dist/compliance/compliance-tools.js.map +1 -0
  26. package/dist/compliance/consent-manager.d.ts +130 -0
  27. package/dist/compliance/consent-manager.d.ts.map +1 -0
  28. package/dist/compliance/consent-manager.js +386 -0
  29. package/dist/compliance/consent-manager.js.map +1 -0
  30. package/dist/compliance/dashboard.d.ts +243 -0
  31. package/dist/compliance/dashboard.d.ts.map +1 -0
  32. package/dist/compliance/dashboard.js +519 -0
  33. package/dist/compliance/dashboard.js.map +1 -0
  34. package/dist/compliance/data-classification.d.ts +117 -0
  35. package/dist/compliance/data-classification.d.ts.map +1 -0
  36. package/dist/compliance/data-classification.js +469 -0
  37. package/dist/compliance/data-classification.js.map +1 -0
  38. package/dist/compliance/data-erasure.d.ts +110 -0
  39. package/dist/compliance/data-erasure.d.ts.map +1 -0
  40. package/dist/compliance/data-erasure.js +501 -0
  41. package/dist/compliance/data-erasure.js.map +1 -0
  42. package/dist/compliance/data-export.d.ts +85 -0
  43. package/dist/compliance/data-export.d.ts.map +1 -0
  44. package/dist/compliance/data-export.js +394 -0
  45. package/dist/compliance/data-export.js.map +1 -0
  46. package/dist/compliance/data-inventory.d.ts +136 -0
  47. package/dist/compliance/data-inventory.d.ts.map +1 -0
  48. package/dist/compliance/data-inventory.js +335 -0
  49. package/dist/compliance/data-inventory.js.map +1 -0
  50. package/dist/compliance/dsar-handler.d.ts +123 -0
  51. package/dist/compliance/dsar-handler.d.ts.map +1 -0
  52. package/dist/compliance/dsar-handler.js +371 -0
  53. package/dist/compliance/dsar-handler.js.map +1 -0
  54. package/dist/compliance/evidence-collector.d.ts +187 -0
  55. package/dist/compliance/evidence-collector.d.ts.map +1 -0
  56. package/dist/compliance/evidence-collector.js +656 -0
  57. package/dist/compliance/evidence-collector.js.map +1 -0
  58. package/dist/compliance/health-monitor.d.ts +111 -0
  59. package/dist/compliance/health-monitor.d.ts.map +1 -0
  60. package/dist/compliance/health-monitor.js +509 -0
  61. package/dist/compliance/health-monitor.js.map +1 -0
  62. package/dist/compliance/incident-manager.d.ts +131 -0
  63. package/dist/compliance/incident-manager.d.ts.map +1 -0
  64. package/dist/compliance/incident-manager.js +418 -0
  65. package/dist/compliance/incident-manager.js.map +1 -0
  66. package/dist/compliance/index.d.ts +32 -0
  67. package/dist/compliance/index.d.ts.map +1 -0
  68. package/dist/compliance/index.js +35 -0
  69. package/dist/compliance/index.js.map +1 -0
  70. package/dist/compliance/policy-docs.d.ts +108 -0
  71. package/dist/compliance/policy-docs.d.ts.map +1 -0
  72. package/dist/compliance/policy-docs.js +464 -0
  73. package/dist/compliance/policy-docs.js.map +1 -0
  74. package/dist/compliance/privacy-notice-text.d.ts +58 -0
  75. package/dist/compliance/privacy-notice-text.d.ts.map +1 -0
  76. package/dist/compliance/privacy-notice-text.js +161 -0
  77. package/dist/compliance/privacy-notice-text.js.map +1 -0
  78. package/dist/compliance/privacy-notice.d.ts +128 -0
  79. package/dist/compliance/privacy-notice.d.ts.map +1 -0
  80. package/dist/compliance/privacy-notice.js +250 -0
  81. package/dist/compliance/privacy-notice.js.map +1 -0
  82. package/dist/compliance/report-generator.d.ts +168 -0
  83. package/dist/compliance/report-generator.d.ts.map +1 -0
  84. package/dist/compliance/report-generator.js +830 -0
  85. package/dist/compliance/report-generator.js.map +1 -0
  86. package/dist/compliance/retention-engine.d.ts +130 -0
  87. package/dist/compliance/retention-engine.d.ts.map +1 -0
  88. package/dist/compliance/retention-engine.js +510 -0
  89. package/dist/compliance/retention-engine.js.map +1 -0
  90. package/dist/compliance/siem-exporter.d.ts +150 -0
  91. package/dist/compliance/siem-exporter.d.ts.map +1 -0
  92. package/dist/compliance/siem-exporter.js +509 -0
  93. package/dist/compliance/siem-exporter.js.map +1 -0
  94. package/dist/compliance/types.d.ts +601 -0
  95. package/dist/compliance/types.d.ts.map +1 -0
  96. package/dist/compliance/types.js +22 -0
  97. package/dist/compliance/types.js.map +1 -0
  98. package/dist/config.d.ts +4 -0
  99. package/dist/config.d.ts.map +1 -1
  100. package/dist/config.js +8 -1
  101. package/dist/config.js.map +1 -1
  102. package/dist/library/notebook-library.d.ts.map +1 -1
  103. package/dist/library/notebook-library.js +2 -1
  104. package/dist/library/notebook-library.js.map +1 -1
  105. package/dist/session/shared-context-manager.d.ts.map +1 -1
  106. package/dist/session/shared-context-manager.js +2 -1
  107. package/dist/session/shared-context-manager.js.map +1 -1
  108. package/dist/utils/audit-logger.d.ts +21 -1
  109. package/dist/utils/audit-logger.d.ts.map +1 -1
  110. package/dist/utils/audit-logger.js +53 -4
  111. package/dist/utils/audit-logger.js.map +1 -1
  112. package/dist/utils/crypto.d.ts.map +1 -1
  113. package/dist/utils/crypto.js +8 -15
  114. package/dist/utils/crypto.js.map +1 -1
  115. package/dist/utils/file-permissions.d.ts +85 -0
  116. package/dist/utils/file-permissions.d.ts.map +1 -0
  117. package/dist/utils/file-permissions.js +180 -0
  118. package/dist/utils/file-permissions.js.map +1 -0
  119. package/dist/utils/settings-manager.d.ts.map +1 -1
  120. package/dist/utils/settings-manager.js +6 -11
  121. package/dist/utils/settings-manager.js.map +1 -1
  122. package/docs/COMPLIANCE-SPEC.md +1452 -0
  123. package/package.json +30 -4
@@ -0,0 +1,501 @@
1
+ /**
2
+ * Data Erasure Tool
3
+ *
4
+ * Complete deletion of user data with secure wiping.
5
+ * Implements GDPR Article 17 (Right to Erasure / Right to be Forgotten).
6
+ *
7
+ * Added by Pantheon Security for enterprise compliance support.
8
+ */
9
+ import crypto from "crypto";
10
+ import path from "path";
11
+ import fs from "fs";
12
+ import { getConfig } from "../config.js";
13
+ import { mkdirSecure, writeFileSecure } from "../utils/file-permissions.js";
14
+ import { getComplianceLogger } from "./compliance-logger.js";
15
+ import { getConsentManager } from "./consent-manager.js";
16
+ import { getPrivacyNoticeManager } from "./privacy-notice.js";
17
+ /**
18
+ * Generate a UUID v4
19
+ */
20
+ function generateUUID() {
21
+ return crypto.randomUUID();
22
+ }
23
+ /**
24
+ * Default erasure scope
25
+ */
26
+ const DEFAULT_SCOPE = {
27
+ notebooks: true,
28
+ settings: true,
29
+ browser_data: true,
30
+ audit_logs: false, // Audit logs have legal retention requirements
31
+ compliance_events: false, // Must keep erasure record
32
+ encryption_keys: false, // Careful with this!
33
+ complete_erasure: false,
34
+ };
35
+ /**
36
+ * Secure file overwrite before deletion
37
+ */
38
+ function secureOverwrite(filePath, passes = 3) {
39
+ try {
40
+ const stats = fs.statSync(filePath);
41
+ const size = stats.size;
42
+ // Multiple passes of random data
43
+ for (let pass = 0; pass < passes; pass++) {
44
+ const randomData = crypto.randomBytes(size);
45
+ fs.writeFileSync(filePath, randomData);
46
+ }
47
+ // Final pass with zeros
48
+ const zeros = Buffer.alloc(size, 0);
49
+ fs.writeFileSync(filePath, zeros);
50
+ }
51
+ catch {
52
+ // File might not exist or can't be written to
53
+ }
54
+ }
55
+ /**
56
+ * Recursively delete a directory with secure wiping
57
+ */
58
+ function secureDeleteDirectory(dirPath, secureWipe = true) {
59
+ let files = 0;
60
+ let bytes = 0;
61
+ try {
62
+ if (!fs.existsSync(dirPath)) {
63
+ return { files, bytes };
64
+ }
65
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
66
+ for (const entry of entries) {
67
+ const fullPath = path.join(dirPath, entry.name);
68
+ if (entry.isDirectory()) {
69
+ const result = secureDeleteDirectory(fullPath, secureWipe);
70
+ files += result.files;
71
+ bytes += result.bytes;
72
+ }
73
+ else {
74
+ try {
75
+ const stats = fs.statSync(fullPath);
76
+ bytes += stats.size;
77
+ files++;
78
+ if (secureWipe) {
79
+ secureOverwrite(fullPath);
80
+ }
81
+ fs.unlinkSync(fullPath);
82
+ }
83
+ catch {
84
+ // Continue with other files
85
+ }
86
+ }
87
+ }
88
+ // Remove the directory itself
89
+ fs.rmdirSync(dirPath);
90
+ }
91
+ catch {
92
+ // Directory might not exist
93
+ }
94
+ return { files, bytes };
95
+ }
96
+ /**
97
+ * Data Erasure Manager class
98
+ */
99
+ export class DataErasureManager {
100
+ static instance;
101
+ erasureLogFile;
102
+ erasureRequests = [];
103
+ loaded = false;
104
+ constructor() {
105
+ const config = getConfig();
106
+ this.erasureLogFile = path.join(config.dataDir, "compliance", "erasure-log.json");
107
+ }
108
+ /**
109
+ * Get singleton instance
110
+ */
111
+ static getInstance() {
112
+ if (!DataErasureManager.instance) {
113
+ DataErasureManager.instance = new DataErasureManager();
114
+ }
115
+ return DataErasureManager.instance;
116
+ }
117
+ /**
118
+ * Load erasure history from storage
119
+ */
120
+ async load() {
121
+ if (this.loaded)
122
+ return;
123
+ try {
124
+ if (fs.existsSync(this.erasureLogFile)) {
125
+ const content = fs.readFileSync(this.erasureLogFile, "utf-8");
126
+ const data = JSON.parse(content);
127
+ this.erasureRequests = data.requests || [];
128
+ }
129
+ }
130
+ catch {
131
+ this.erasureRequests = [];
132
+ }
133
+ this.loaded = true;
134
+ }
135
+ /**
136
+ * Save erasure history to storage
137
+ */
138
+ async save() {
139
+ const dir = path.dirname(this.erasureLogFile);
140
+ mkdirSecure(dir);
141
+ const data = {
142
+ version: "1.0.0",
143
+ last_updated: new Date().toISOString(),
144
+ requests: this.erasureRequests,
145
+ };
146
+ writeFileSecure(this.erasureLogFile, JSON.stringify(data, null, 2));
147
+ }
148
+ /**
149
+ * Create a new erasure request
150
+ */
151
+ async createRequest(scope = {}) {
152
+ await this.load();
153
+ const fullScope = { ...DEFAULT_SCOPE, ...scope };
154
+ // If complete_erasure is true, set all to true except compliance_events
155
+ if (fullScope.complete_erasure) {
156
+ fullScope.notebooks = true;
157
+ fullScope.settings = true;
158
+ fullScope.browser_data = true;
159
+ fullScope.audit_logs = true;
160
+ fullScope.encryption_keys = true;
161
+ // compliance_events stays false - we need to keep the erasure record
162
+ }
163
+ const request = {
164
+ request_id: generateUUID(),
165
+ requested_at: new Date().toISOString(),
166
+ scope: fullScope,
167
+ confirmed: false,
168
+ confirmation_method: "explicit",
169
+ items_deleted: [],
170
+ erasure_record_retention_days: 7 * 365, // 7 years per CSSF
171
+ };
172
+ this.erasureRequests.push(request);
173
+ await this.save();
174
+ // Log the request
175
+ const logger = getComplianceLogger();
176
+ await logger.log("data_deletion", "erasure_requested", { type: "user" }, "pending", {
177
+ details: {
178
+ request_id: request.request_id,
179
+ scope: fullScope,
180
+ },
181
+ });
182
+ return request;
183
+ }
184
+ /**
185
+ * Confirm and execute an erasure request
186
+ */
187
+ async confirmAndExecute(requestId) {
188
+ await this.load();
189
+ const request = this.erasureRequests.find(r => r.request_id === requestId);
190
+ if (!request) {
191
+ return null;
192
+ }
193
+ if (request.confirmed) {
194
+ return request; // Already executed
195
+ }
196
+ const config = getConfig();
197
+ const results = [];
198
+ // Execute erasure based on scope
199
+ if (request.scope.notebooks) {
200
+ const result = await this.eraseNotebooks(config);
201
+ results.push(result);
202
+ }
203
+ if (request.scope.settings) {
204
+ const result = await this.eraseSettings(config);
205
+ results.push(result);
206
+ }
207
+ if (request.scope.browser_data) {
208
+ const result = await this.eraseBrowserData(config);
209
+ results.push(result);
210
+ }
211
+ if (request.scope.audit_logs) {
212
+ const result = await this.eraseAuditLogs(config);
213
+ results.push(result);
214
+ }
215
+ if (request.scope.encryption_keys) {
216
+ const result = await this.eraseEncryptionKeys(config);
217
+ results.push(result);
218
+ }
219
+ // Also erase consent and privacy acknowledgment records
220
+ if (request.scope.complete_erasure || request.scope.settings) {
221
+ await this.eraseConsentRecords();
222
+ await this.erasePrivacyAcknowledgments();
223
+ }
224
+ // Update request
225
+ request.confirmed = true;
226
+ request.confirmation_method = "explicit";
227
+ request.executed_at = new Date().toISOString();
228
+ request.items_deleted = results;
229
+ await this.save();
230
+ // Log completion
231
+ const logger = getComplianceLogger();
232
+ const totalItems = results.reduce((sum, r) => sum + r.items_deleted, 0);
233
+ const totalBytes = results.reduce((sum, r) => sum + r.size_bytes, 0);
234
+ await logger.logDataDeletion({ type: "user" }, "multiple_data_types", totalItems, true, {
235
+ request_id: requestId,
236
+ total_bytes: totalBytes,
237
+ data_types: results.map(r => r.data_type),
238
+ });
239
+ return request;
240
+ }
241
+ /**
242
+ * Erase notebook library
243
+ */
244
+ async eraseNotebooks(config) {
245
+ const libraryPath = path.join(config.configDir, "library.json");
246
+ const result = {
247
+ data_type: "notebook_library",
248
+ path: libraryPath,
249
+ items_deleted: 0,
250
+ size_bytes: 0,
251
+ method: "overwrite",
252
+ verified: false,
253
+ };
254
+ try {
255
+ if (fs.existsSync(libraryPath)) {
256
+ const stats = fs.statSync(libraryPath);
257
+ result.size_bytes = stats.size;
258
+ result.items_deleted = 1;
259
+ secureOverwrite(libraryPath);
260
+ fs.unlinkSync(libraryPath);
261
+ result.verified = !fs.existsSync(libraryPath);
262
+ }
263
+ else {
264
+ result.verified = true;
265
+ }
266
+ }
267
+ catch {
268
+ result.verified = false;
269
+ }
270
+ return result;
271
+ }
272
+ /**
273
+ * Erase user settings
274
+ */
275
+ async eraseSettings(config) {
276
+ const settingsPath = path.join(config.configDir, "settings.json");
277
+ const result = {
278
+ data_type: "user_settings",
279
+ path: settingsPath,
280
+ items_deleted: 0,
281
+ size_bytes: 0,
282
+ method: "delete",
283
+ verified: false,
284
+ };
285
+ try {
286
+ if (fs.existsSync(settingsPath)) {
287
+ const stats = fs.statSync(settingsPath);
288
+ result.size_bytes = stats.size;
289
+ result.items_deleted = 1;
290
+ fs.unlinkSync(settingsPath);
291
+ result.verified = !fs.existsSync(settingsPath);
292
+ }
293
+ else {
294
+ result.verified = true;
295
+ }
296
+ }
297
+ catch {
298
+ result.verified = false;
299
+ }
300
+ return result;
301
+ }
302
+ /**
303
+ * Erase browser data
304
+ */
305
+ async eraseBrowserData(config) {
306
+ const browserStateDir = path.join(config.dataDir, "browser_state");
307
+ const chromeProfileDir = path.join(config.dataDir, "chrome_profile");
308
+ const result = {
309
+ data_type: "browser_data",
310
+ path: config.dataDir,
311
+ items_deleted: 0,
312
+ size_bytes: 0,
313
+ method: "overwrite",
314
+ verified: false,
315
+ };
316
+ // Erase browser state (encrypted cookies, etc.)
317
+ if (fs.existsSync(browserStateDir)) {
318
+ const browserResult = secureDeleteDirectory(browserStateDir, true);
319
+ result.items_deleted += browserResult.files;
320
+ result.size_bytes += browserResult.bytes;
321
+ }
322
+ // Erase Chrome profile
323
+ if (fs.existsSync(chromeProfileDir)) {
324
+ const chromeResult = secureDeleteDirectory(chromeProfileDir, true);
325
+ result.items_deleted += chromeResult.files;
326
+ result.size_bytes += chromeResult.bytes;
327
+ }
328
+ // Erase session files
329
+ const sessionsDir = path.join(config.dataDir, "sessions");
330
+ if (fs.existsSync(sessionsDir)) {
331
+ const sessionResult = secureDeleteDirectory(sessionsDir, true);
332
+ result.items_deleted += sessionResult.files;
333
+ result.size_bytes += sessionResult.bytes;
334
+ }
335
+ result.verified = !fs.existsSync(browserStateDir) &&
336
+ !fs.existsSync(chromeProfileDir) &&
337
+ !fs.existsSync(sessionsDir);
338
+ return result;
339
+ }
340
+ /**
341
+ * Erase audit logs
342
+ */
343
+ async eraseAuditLogs(config) {
344
+ const auditDir = path.join(config.dataDir, "audit");
345
+ const result = {
346
+ data_type: "audit_logs",
347
+ path: auditDir,
348
+ items_deleted: 0,
349
+ size_bytes: 0,
350
+ method: "overwrite",
351
+ verified: false,
352
+ };
353
+ if (fs.existsSync(auditDir)) {
354
+ const auditResult = secureDeleteDirectory(auditDir, true);
355
+ result.items_deleted = auditResult.files;
356
+ result.size_bytes = auditResult.bytes;
357
+ result.verified = !fs.existsSync(auditDir);
358
+ }
359
+ else {
360
+ result.verified = true;
361
+ }
362
+ return result;
363
+ }
364
+ /**
365
+ * Erase encryption keys (crypto shred)
366
+ */
367
+ async eraseEncryptionKeys(config) {
368
+ const keysPath = path.join(config.dataDir, "pq-keys.enc");
369
+ const result = {
370
+ data_type: "encryption_keys",
371
+ path: keysPath,
372
+ items_deleted: 0,
373
+ size_bytes: 0,
374
+ method: "crypto_shred",
375
+ verified: false,
376
+ };
377
+ try {
378
+ if (fs.existsSync(keysPath)) {
379
+ const stats = fs.statSync(keysPath);
380
+ result.size_bytes = stats.size;
381
+ result.items_deleted = 1;
382
+ // Crypto shred: overwrite with random data multiple times
383
+ secureOverwrite(keysPath, 7);
384
+ fs.unlinkSync(keysPath);
385
+ result.verified = !fs.existsSync(keysPath);
386
+ }
387
+ else {
388
+ result.verified = true;
389
+ }
390
+ }
391
+ catch {
392
+ result.verified = false;
393
+ }
394
+ return result;
395
+ }
396
+ /**
397
+ * Erase consent records
398
+ */
399
+ async eraseConsentRecords() {
400
+ const consentManager = getConsentManager();
401
+ await consentManager.deleteAllConsents();
402
+ }
403
+ /**
404
+ * Erase privacy acknowledgments
405
+ */
406
+ async erasePrivacyAcknowledgments() {
407
+ const privacyManager = getPrivacyNoticeManager();
408
+ await privacyManager.deleteAllRecords();
409
+ }
410
+ /**
411
+ * Get erasure request by ID
412
+ */
413
+ async getRequest(requestId) {
414
+ await this.load();
415
+ return this.erasureRequests.find(r => r.request_id === requestId) || null;
416
+ }
417
+ /**
418
+ * Get all erasure requests
419
+ */
420
+ async getAllRequests() {
421
+ await this.load();
422
+ return [...this.erasureRequests];
423
+ }
424
+ /**
425
+ * Get pending erasure requests
426
+ */
427
+ async getPendingRequests() {
428
+ await this.load();
429
+ return this.erasureRequests.filter(r => !r.confirmed);
430
+ }
431
+ /**
432
+ * Cancel a pending erasure request
433
+ */
434
+ async cancelRequest(requestId) {
435
+ await this.load();
436
+ const index = this.erasureRequests.findIndex(r => r.request_id === requestId);
437
+ if (index === -1) {
438
+ return false;
439
+ }
440
+ const request = this.erasureRequests[index];
441
+ if (request.confirmed) {
442
+ return false; // Can't cancel executed requests
443
+ }
444
+ this.erasureRequests.splice(index, 1);
445
+ await this.save();
446
+ // Log cancellation
447
+ const logger = getComplianceLogger();
448
+ await logger.log("data_deletion", "erasure_cancelled", { type: "user" }, "success", {
449
+ details: { request_id: requestId },
450
+ });
451
+ return true;
452
+ }
453
+ /**
454
+ * Get erasure summary
455
+ */
456
+ async getSummary() {
457
+ await this.load();
458
+ const completed = this.erasureRequests.filter(r => r.confirmed);
459
+ const pending = this.erasureRequests.filter(r => !r.confirmed);
460
+ const totalItems = completed.reduce((sum, r) => sum + r.items_deleted.reduce((s, i) => s + i.items_deleted, 0), 0);
461
+ const totalBytes = completed.reduce((sum, r) => sum + r.items_deleted.reduce((s, i) => s + i.size_bytes, 0), 0);
462
+ return {
463
+ total_requests: this.erasureRequests.length,
464
+ pending_requests: pending.length,
465
+ completed_requests: completed.length,
466
+ total_items_deleted: totalItems,
467
+ total_bytes_deleted: totalBytes,
468
+ };
469
+ }
470
+ }
471
+ // ============================================
472
+ // SINGLETON ACCESS
473
+ // ============================================
474
+ /**
475
+ * Get the data erasure manager instance
476
+ */
477
+ export function getDataErasureManager() {
478
+ return DataErasureManager.getInstance();
479
+ }
480
+ // ============================================
481
+ // CONVENIENCE EXPORTS
482
+ // ============================================
483
+ /**
484
+ * Create a new erasure request
485
+ */
486
+ export async function createErasureRequest(scope = {}) {
487
+ return getDataErasureManager().createRequest(scope);
488
+ }
489
+ /**
490
+ * Confirm and execute an erasure request
491
+ */
492
+ export async function executeErasureRequest(requestId) {
493
+ return getDataErasureManager().confirmAndExecute(requestId);
494
+ }
495
+ /**
496
+ * Get pending erasure requests
497
+ */
498
+ export async function getPendingErasureRequests() {
499
+ return getDataErasureManager().getPendingRequests();
500
+ }
501
+ //# sourceMappingURL=data-erasure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-erasure.js","sourceRoot":"","sources":["../../src/compliance/data-erasure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Data Export Tool
3
+ *
4
+ * Exports all user data in machine-readable format.
5
+ * Implements GDPR Article 20 (Right to Data Portability).
6
+ *
7
+ * Added by Pantheon Security for enterprise compliance support.
8
+ */
9
+ import type { DataExport, ExportOptions } from "./types.js";
10
+ /**
11
+ * Data Exporter class
12
+ */
13
+ export declare class DataExporter {
14
+ private static instance;
15
+ private constructor();
16
+ /**
17
+ * Get singleton instance
18
+ */
19
+ static getInstance(): DataExporter;
20
+ /**
21
+ * Export all user data
22
+ */
23
+ exportAll(options?: Partial<ExportOptions>): Promise<DataExport>;
24
+ /**
25
+ * Export consent records
26
+ */
27
+ private exportConsents;
28
+ /**
29
+ * Export notebook library
30
+ */
31
+ private exportNotebooks;
32
+ /**
33
+ * Export user settings
34
+ */
35
+ private exportSettings;
36
+ /**
37
+ * Export session history (if retained)
38
+ */
39
+ private exportSessions;
40
+ /**
41
+ * Export audit logs
42
+ */
43
+ private exportAuditLogs;
44
+ /**
45
+ * Export compliance events
46
+ */
47
+ private exportComplianceEvents;
48
+ /**
49
+ * Build inventory summary from exported data
50
+ */
51
+ private buildInventorySummary;
52
+ /**
53
+ * Export to file
54
+ */
55
+ exportToFile(outputPath: string, options?: Partial<ExportOptions>): Promise<{
56
+ success: boolean;
57
+ path: string;
58
+ checksum: string;
59
+ }>;
60
+ /**
61
+ * Export to string
62
+ */
63
+ exportToString(options?: Partial<ExportOptions>): Promise<string>;
64
+ }
65
+ /**
66
+ * Get the data exporter instance
67
+ */
68
+ export declare function getDataExporter(): DataExporter;
69
+ /**
70
+ * Export all user data
71
+ */
72
+ export declare function exportUserData(options?: Partial<ExportOptions>): Promise<DataExport>;
73
+ /**
74
+ * Export user data to file
75
+ */
76
+ export declare function exportUserDataToFile(outputPath: string, options?: Partial<ExportOptions>): Promise<{
77
+ success: boolean;
78
+ path: string;
79
+ checksum: string;
80
+ }>;
81
+ /**
82
+ * Export user data to string
83
+ */
84
+ export declare function exportUserDataToString(options?: Partial<ExportOptions>): Promise<string>;
85
+ //# sourceMappingURL=data-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-export.d.ts","sourceRoot":"","sources":["../../src/compliance/data-export.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAkC,MAAM,YAAY,CAAC;AAsB5F;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IAEtC,OAAO;IAEP;;OAEG;WACW,WAAW,IAAI,YAAY;IAOzC;;OAEG;IACU,SAAS,CAAC,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8CjF;;OAEG;YACW,cAAc;IAK5B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,cAAc;IAe5B;;OAEG;YACW,cAAc;IAgC5B;;OAEG;YACW,eAAe;IAsD7B;;OAEG;YACW,sBAAsB;IAyDpC;;OAEG;YACW,qBAAqB;IA6EnC;;OAEG;IACU,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GACnC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBhE;;OAEG;IACU,cAAc,CAAC,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQnF;AAMD;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE9F;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAE/D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAElG"}