@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 @@
1
+ {"version":3,"file":"compliance-tools.js","sourceRoot":"","sources":["../../src/compliance/compliance-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Consent Manager
3
+ *
4
+ * Tracks and manages user consent for data processing activities.
5
+ * Implements GDPR Article 6 legal basis requirements.
6
+ *
7
+ * Added by Pantheon Security for enterprise compliance support.
8
+ */
9
+ import type { ConsentRecord, ConsentPurpose, LegalBasis } from "./types.js";
10
+ /**
11
+ * Consent Manager class
12
+ */
13
+ export declare class ConsentManager {
14
+ private static instance;
15
+ private consentFile;
16
+ private consents;
17
+ private loaded;
18
+ private consentVersion;
19
+ private requireConsent;
20
+ private constructor();
21
+ /**
22
+ * Get singleton instance
23
+ */
24
+ static getInstance(): ConsentManager;
25
+ /**
26
+ * Load consents from storage
27
+ */
28
+ private load;
29
+ /**
30
+ * Save consents to storage
31
+ */
32
+ private save;
33
+ /**
34
+ * Check if this is the first run (no consent recorded)
35
+ */
36
+ isFirstRun(): Promise<boolean>;
37
+ /**
38
+ * Check if consent is required for this installation
39
+ */
40
+ isConsentRequired(): boolean;
41
+ /**
42
+ * Grant consent for specified purposes
43
+ */
44
+ grantConsent(purposes: ConsentPurpose[], options?: {
45
+ legalBasis?: LegalBasis;
46
+ method?: "explicit" | "implicit" | "contractual";
47
+ evidence?: string;
48
+ expiresAt?: string;
49
+ }): Promise<ConsentRecord>;
50
+ /**
51
+ * Revoke consent
52
+ */
53
+ revokeConsent(consentId: string, reason?: string): Promise<boolean>;
54
+ /**
55
+ * Check if consent exists for a specific purpose
56
+ */
57
+ hasConsent(purpose: ConsentPurpose): Promise<boolean>;
58
+ /**
59
+ * Get all active (non-revoked, non-expired) consents
60
+ */
61
+ getActiveConsents(): Promise<ConsentRecord[]>;
62
+ /**
63
+ * Get full consent history (for DSAR)
64
+ */
65
+ getConsentHistory(): Promise<ConsentRecord[]>;
66
+ /**
67
+ * Export consent records for DSAR
68
+ */
69
+ exportConsents(): Promise<string>;
70
+ /**
71
+ * Check if privacy notice needs to be shown (new version or first run)
72
+ */
73
+ needsPrivacyNotice(): Promise<boolean>;
74
+ /**
75
+ * Record acknowledgment of privacy notice
76
+ */
77
+ acknowledgePrivacyNotice(): Promise<ConsentRecord>;
78
+ /**
79
+ * Get consent status summary
80
+ */
81
+ getConsentSummary(): Promise<{
82
+ firstRun: boolean;
83
+ consentVersion: string;
84
+ activeConsents: number;
85
+ revokedConsents: number;
86
+ purposes: Record<ConsentPurpose, boolean>;
87
+ lastConsentDate?: string;
88
+ }>;
89
+ /**
90
+ * Delete all consent records (for data erasure)
91
+ */
92
+ deleteAllConsents(): Promise<number>;
93
+ /**
94
+ * Determine appropriate legal basis for purposes
95
+ */
96
+ private determineLegalBasis;
97
+ /**
98
+ * Validate that all required consents are in place
99
+ */
100
+ validateConsents(): Promise<{
101
+ valid: boolean;
102
+ missing: ConsentPurpose[];
103
+ }>;
104
+ }
105
+ /**
106
+ * Get the consent manager instance
107
+ */
108
+ export declare function getConsentManager(): ConsentManager;
109
+ /**
110
+ * Check if this is the first run
111
+ */
112
+ export declare function isFirstRun(): Promise<boolean>;
113
+ /**
114
+ * Check if consent exists for a purpose
115
+ */
116
+ export declare function hasConsent(purpose: ConsentPurpose): Promise<boolean>;
117
+ /**
118
+ * Grant consent for purposes
119
+ */
120
+ export declare function grantConsent(purposes: ConsentPurpose[], options?: {
121
+ legalBasis?: LegalBasis;
122
+ method?: "explicit" | "implicit" | "contractual";
123
+ evidence?: string;
124
+ expiresAt?: string;
125
+ }): Promise<ConsentRecord>;
126
+ /**
127
+ * Revoke a consent
128
+ */
129
+ export declare function revokeConsent(consentId: string, reason?: string): Promise<boolean>;
130
+ //# sourceMappingURL=consent-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-manager.d.ts","sourceRoot":"","sources":["../../src/compliance/consent-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,386 @@
1
+ /**
2
+ * Consent Manager
3
+ *
4
+ * Tracks and manages user consent for data processing activities.
5
+ * Implements GDPR Article 6 legal basis requirements.
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
+ /**
16
+ * Generate a UUID v4
17
+ */
18
+ function generateUUID() {
19
+ return crypto.randomUUID();
20
+ }
21
+ /**
22
+ * Default consent version
23
+ */
24
+ const DEFAULT_CONSENT_VERSION = "1.0.0";
25
+ /**
26
+ * Default legal bases for automatic consent (no explicit user action required)
27
+ */
28
+ const AUTOMATIC_LEGAL_BASES = {
29
+ "service_provision": "contract",
30
+ "session_management": "contract",
31
+ "security_logging": "legitimate_interest",
32
+ "error_diagnostics": "legitimate_interest",
33
+ "usage_analytics": "consent", // This one requires explicit consent
34
+ };
35
+ /**
36
+ * Data categories processed for each purpose
37
+ */
38
+ const PURPOSE_DATA_CATEGORIES = {
39
+ "service_provision": ["session_data", "notebook_metadata"],
40
+ "session_management": ["session_data", "credentials"],
41
+ "security_logging": ["audit_logs"],
42
+ "error_diagnostics": ["usage_data"],
43
+ "usage_analytics": ["usage_data"],
44
+ };
45
+ /**
46
+ * Consent Manager class
47
+ */
48
+ export class ConsentManager {
49
+ static instance;
50
+ consentFile;
51
+ consents = [];
52
+ loaded = false;
53
+ consentVersion;
54
+ requireConsent;
55
+ constructor() {
56
+ const config = getConfig();
57
+ this.consentFile = path.join(config.configDir, "consent.json");
58
+ this.consentVersion = process.env.NLMCP_CONSENT_VERSION || DEFAULT_CONSENT_VERSION;
59
+ this.requireConsent = process.env.NLMCP_CONSENT_REQUIRED?.toLowerCase() !== "false";
60
+ }
61
+ /**
62
+ * Get singleton instance
63
+ */
64
+ static getInstance() {
65
+ if (!ConsentManager.instance) {
66
+ ConsentManager.instance = new ConsentManager();
67
+ }
68
+ return ConsentManager.instance;
69
+ }
70
+ /**
71
+ * Load consents from storage
72
+ */
73
+ async load() {
74
+ if (this.loaded)
75
+ return;
76
+ try {
77
+ if (fs.existsSync(this.consentFile)) {
78
+ const content = fs.readFileSync(this.consentFile, "utf-8");
79
+ const data = JSON.parse(content);
80
+ this.consents = data.consents || [];
81
+ }
82
+ }
83
+ catch {
84
+ // Start fresh if file is corrupted
85
+ this.consents = [];
86
+ }
87
+ this.loaded = true;
88
+ }
89
+ /**
90
+ * Save consents to storage
91
+ */
92
+ async save() {
93
+ const dir = path.dirname(this.consentFile);
94
+ mkdirSecure(dir);
95
+ const data = {
96
+ version: this.consentVersion,
97
+ consents: this.consents,
98
+ last_updated: new Date().toISOString(),
99
+ };
100
+ writeFileSecure(this.consentFile, JSON.stringify(data, null, 2));
101
+ }
102
+ /**
103
+ * Check if this is the first run (no consent recorded)
104
+ */
105
+ async isFirstRun() {
106
+ await this.load();
107
+ return this.consents.length === 0;
108
+ }
109
+ /**
110
+ * Check if consent is required for this installation
111
+ */
112
+ isConsentRequired() {
113
+ return this.requireConsent;
114
+ }
115
+ /**
116
+ * Grant consent for specified purposes
117
+ */
118
+ async grantConsent(purposes, options = {}) {
119
+ await this.load();
120
+ // Collect all data categories for these purposes
121
+ const dataCategories = [];
122
+ for (const purpose of purposes) {
123
+ const categories = PURPOSE_DATA_CATEGORIES[purpose] || [];
124
+ for (const cat of categories) {
125
+ if (!dataCategories.includes(cat)) {
126
+ dataCategories.push(cat);
127
+ }
128
+ }
129
+ }
130
+ // Determine legal basis
131
+ const legalBasis = options.legalBasis || this.determineLegalBasis(purposes);
132
+ const consent = {
133
+ id: generateUUID(),
134
+ version: this.consentVersion,
135
+ granted_at: new Date().toISOString(),
136
+ expires_at: options.expiresAt,
137
+ purposes,
138
+ data_categories: dataCategories,
139
+ legal_basis: legalBasis,
140
+ method: options.method || "explicit",
141
+ evidence: options.evidence,
142
+ };
143
+ this.consents.push(consent);
144
+ await this.save();
145
+ // Log consent event
146
+ const logger = getComplianceLogger();
147
+ await logger.logConsent("granted", { type: "user" }, purposes, true, { consent_id: consent.id, legal_basis: legalBasis });
148
+ return consent;
149
+ }
150
+ /**
151
+ * Revoke consent
152
+ */
153
+ async revokeConsent(consentId, reason) {
154
+ await this.load();
155
+ const consent = this.consents.find(c => c.id === consentId);
156
+ if (!consent) {
157
+ return false;
158
+ }
159
+ consent.revoked = true;
160
+ consent.revoked_at = new Date().toISOString();
161
+ consent.revocation_reason = reason;
162
+ await this.save();
163
+ // Log revocation event
164
+ const logger = getComplianceLogger();
165
+ await logger.logConsent("revoked", { type: "user" }, consent.purposes, true, { consent_id: consentId, reason });
166
+ return true;
167
+ }
168
+ /**
169
+ * Check if consent exists for a specific purpose
170
+ */
171
+ async hasConsent(purpose) {
172
+ await this.load();
173
+ // Check for implicit consent based on legal basis
174
+ const implicitBasis = AUTOMATIC_LEGAL_BASES[purpose];
175
+ if (implicitBasis !== "consent") {
176
+ // These purposes don't require explicit consent
177
+ return true;
178
+ }
179
+ // Check for explicit consent
180
+ const now = new Date();
181
+ return this.consents.some(c => {
182
+ // Must not be revoked
183
+ if (c.revoked)
184
+ return false;
185
+ // Must include the purpose
186
+ if (!c.purposes.includes(purpose))
187
+ return false;
188
+ // Must not be expired
189
+ if (c.expires_at && new Date(c.expires_at) < now)
190
+ return false;
191
+ return true;
192
+ });
193
+ }
194
+ /**
195
+ * Get all active (non-revoked, non-expired) consents
196
+ */
197
+ async getActiveConsents() {
198
+ await this.load();
199
+ const now = new Date();
200
+ return this.consents.filter(c => {
201
+ if (c.revoked)
202
+ return false;
203
+ if (c.expires_at && new Date(c.expires_at) < now)
204
+ return false;
205
+ return true;
206
+ });
207
+ }
208
+ /**
209
+ * Get full consent history (for DSAR)
210
+ */
211
+ async getConsentHistory() {
212
+ await this.load();
213
+ return [...this.consents].sort((a, b) => new Date(b.granted_at).getTime() - new Date(a.granted_at).getTime());
214
+ }
215
+ /**
216
+ * Export consent records for DSAR
217
+ */
218
+ async exportConsents() {
219
+ const history = await this.getConsentHistory();
220
+ const exportData = {
221
+ export_date: new Date().toISOString(),
222
+ consent_version: this.consentVersion,
223
+ total_consents: history.length,
224
+ active_consents: history.filter(c => !c.revoked).length,
225
+ revoked_consents: history.filter(c => c.revoked).length,
226
+ consents: history.map(c => ({
227
+ id: c.id,
228
+ version: c.version,
229
+ granted_at: c.granted_at,
230
+ expires_at: c.expires_at,
231
+ purposes: c.purposes,
232
+ data_categories: c.data_categories,
233
+ legal_basis: c.legal_basis,
234
+ method: c.method,
235
+ revoked: c.revoked || false,
236
+ revoked_at: c.revoked_at,
237
+ revocation_reason: c.revocation_reason,
238
+ })),
239
+ };
240
+ return JSON.stringify(exportData, null, 2);
241
+ }
242
+ /**
243
+ * Check if privacy notice needs to be shown (new version or first run)
244
+ */
245
+ async needsPrivacyNotice() {
246
+ await this.load();
247
+ // First run - need to show notice
248
+ if (this.consents.length === 0) {
249
+ return true;
250
+ }
251
+ // Check if there's a consent for the current version
252
+ const currentVersionConsent = this.consents.find(c => c.version === this.consentVersion && !c.revoked);
253
+ return !currentVersionConsent;
254
+ }
255
+ /**
256
+ * Record acknowledgment of privacy notice
257
+ */
258
+ async acknowledgePrivacyNotice() {
259
+ // Grant consent for all standard purposes (not usage_analytics)
260
+ const standardPurposes = [
261
+ "service_provision",
262
+ "session_management",
263
+ "security_logging",
264
+ "error_diagnostics",
265
+ ];
266
+ return this.grantConsent(standardPurposes, {
267
+ method: "explicit",
268
+ evidence: "Privacy notice acknowledged via CLI",
269
+ });
270
+ }
271
+ /**
272
+ * Get consent status summary
273
+ */
274
+ async getConsentSummary() {
275
+ await this.load();
276
+ const active = await this.getActiveConsents();
277
+ const revoked = this.consents.filter(c => c.revoked);
278
+ // Check each purpose
279
+ const purposes = {
280
+ "service_provision": await this.hasConsent("service_provision"),
281
+ "session_management": await this.hasConsent("session_management"),
282
+ "security_logging": await this.hasConsent("security_logging"),
283
+ "error_diagnostics": await this.hasConsent("error_diagnostics"),
284
+ "usage_analytics": await this.hasConsent("usage_analytics"),
285
+ };
286
+ // Find the most recent consent
287
+ const sortedConsents = [...this.consents].sort((a, b) => new Date(b.granted_at).getTime() - new Date(a.granted_at).getTime());
288
+ return {
289
+ firstRun: this.consents.length === 0,
290
+ consentVersion: this.consentVersion,
291
+ activeConsents: active.length,
292
+ revokedConsents: revoked.length,
293
+ purposes,
294
+ lastConsentDate: sortedConsents[0]?.granted_at,
295
+ };
296
+ }
297
+ /**
298
+ * Delete all consent records (for data erasure)
299
+ */
300
+ async deleteAllConsents() {
301
+ await this.load();
302
+ const count = this.consents.length;
303
+ // Log before deletion
304
+ const logger = getComplianceLogger();
305
+ await logger.logDataDeletion({ type: "user" }, "consent_records", count, true, { action: "erasure_request" });
306
+ // Clear consents
307
+ this.consents = [];
308
+ await this.save();
309
+ return count;
310
+ }
311
+ /**
312
+ * Determine appropriate legal basis for purposes
313
+ */
314
+ determineLegalBasis(purposes) {
315
+ // If any purpose requires explicit consent, return "consent"
316
+ for (const purpose of purposes) {
317
+ if (AUTOMATIC_LEGAL_BASES[purpose] === "consent") {
318
+ return "consent";
319
+ }
320
+ }
321
+ // If all purposes are contract-based, return "contract"
322
+ const allContract = purposes.every(p => AUTOMATIC_LEGAL_BASES[p] === "contract");
323
+ if (allContract) {
324
+ return "contract";
325
+ }
326
+ // Mixed or legitimate interest
327
+ return "legitimate_interest";
328
+ }
329
+ /**
330
+ * Validate that all required consents are in place
331
+ */
332
+ async validateConsents() {
333
+ const requiredPurposes = [
334
+ "service_provision",
335
+ "session_management",
336
+ ];
337
+ const missing = [];
338
+ for (const purpose of requiredPurposes) {
339
+ const hasIt = await this.hasConsent(purpose);
340
+ if (!hasIt) {
341
+ missing.push(purpose);
342
+ }
343
+ }
344
+ return {
345
+ valid: missing.length === 0,
346
+ missing,
347
+ };
348
+ }
349
+ }
350
+ // ============================================
351
+ // SINGLETON ACCESS
352
+ // ============================================
353
+ /**
354
+ * Get the consent manager instance
355
+ */
356
+ export function getConsentManager() {
357
+ return ConsentManager.getInstance();
358
+ }
359
+ // ============================================
360
+ // CONVENIENCE EXPORTS
361
+ // ============================================
362
+ /**
363
+ * Check if this is the first run
364
+ */
365
+ export async function isFirstRun() {
366
+ return getConsentManager().isFirstRun();
367
+ }
368
+ /**
369
+ * Check if consent exists for a purpose
370
+ */
371
+ export async function hasConsent(purpose) {
372
+ return getConsentManager().hasConsent(purpose);
373
+ }
374
+ /**
375
+ * Grant consent for purposes
376
+ */
377
+ export async function grantConsent(purposes, options) {
378
+ return getConsentManager().grantConsent(purposes, options);
379
+ }
380
+ /**
381
+ * Revoke a consent
382
+ */
383
+ export async function revokeConsent(consentId, reason) {
384
+ return getConsentManager().revokeConsent(consentId, reason);
385
+ }
386
+ //# sourceMappingURL=consent-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-manager.js","sourceRoot":"","sources":["../../src/compliance/consent-manager.ts"],"names":[],"mappings":"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"}