@revealui/core 0.3.0 → 0.5.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.
- package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -1
- package/dist/client/admin/components/AdminDashboard.js +20 -3
- package/dist/client/richtext/index.d.ts.map +1 -1
- package/dist/client/richtext/plugins/FloatingToolbarPlugin.js +1 -3
- package/dist/collections/operations/create.d.ts +2 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +28 -1
- package/dist/database/type-adapter.d.ts.map +1 -1
- package/dist/features.d.ts +7 -3
- package/dist/features.d.ts.map +1 -1
- package/dist/features.js +2 -0
- package/dist/globals/GlobalOperations.d.ts.map +1 -1
- package/dist/globals/GlobalOperations.js +12 -2
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/license.d.ts +6 -0
- package/dist/license.d.ts.map +1 -1
- package/dist/license.js +14 -1
- package/dist/monitoring/alerts.d.ts +4 -4
- package/dist/monitoring/alerts.d.ts.map +1 -1
- package/dist/plugins/nested-docs.d.ts.map +1 -1
- package/dist/plugins/nested-docs.js +0 -1
- package/dist/queries/queryBuilder.d.ts.map +1 -1
- package/dist/queries/queryBuilder.js +4 -3
- package/dist/richtext/index.d.ts.map +1 -1
- package/dist/storage/vercel-blob.d.ts.map +1 -1
- package/dist/storage/vercel-blob.js +3 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/extensions.d.ts.map +1 -1
- package/dist/types/frontend.d.ts.map +1 -1
- package/dist/types/legacy.d.ts.map +1 -1
- package/dist/types/query.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +1 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/utils/error-responses.d.ts.map +1 -1
- package/dist/utils/error-responses.js +2 -3
- package/package.json +23 -23
- package/dist/caching/app-cache.d.ts +0 -242
- package/dist/caching/app-cache.d.ts.map +0 -1
- package/dist/caching/app-cache.js +0 -438
- package/dist/caching/cdn-config.d.ts +0 -155
- package/dist/caching/cdn-config.d.ts.map +0 -1
- package/dist/caching/cdn-config.js +0 -415
- package/dist/caching/edge-cache.d.ts +0 -177
- package/dist/caching/edge-cache.d.ts.map +0 -1
- package/dist/caching/edge-cache.js +0 -414
- package/dist/caching/service-worker.d.ts +0 -157
- package/dist/caching/service-worker.d.ts.map +0 -1
- package/dist/caching/service-worker.js +0 -438
- package/dist/client/admin/utils/auth.d.ts +0 -23
- package/dist/client/admin/utils/auth.d.ts.map +0 -1
- package/dist/client/admin/utils/auth.js +0 -52
- package/dist/client/http/client.d.ts +0 -15
- package/dist/client/http/client.d.ts.map +0 -1
- package/dist/client/http/client.js +0 -49
- package/dist/client/http/fetchBanner.d.ts +0 -18
- package/dist/client/http/fetchBanner.d.ts.map +0 -1
- package/dist/client/http/fetchBanner.js +0 -44
- package/dist/client/http/fetchCard.d.ts +0 -18
- package/dist/client/http/fetchCard.d.ts.map +0 -1
- package/dist/client/http/fetchCard.js +0 -46
- package/dist/client/http/fetchEvents.d.ts +0 -18
- package/dist/client/http/fetchEvents.d.ts.map +0 -1
- package/dist/client/http/fetchEvents.js +0 -44
- package/dist/client/http/fetchHero.d.ts +0 -17
- package/dist/client/http/fetchHero.d.ts.map +0 -1
- package/dist/client/http/fetchHero.js +0 -55
- package/dist/client/http/fetchMainInfos.d.ts +0 -17
- package/dist/client/http/fetchMainInfos.d.ts.map +0 -1
- package/dist/client/http/fetchMainInfos.js +0 -44
- package/dist/client/http/fetchVideos.d.ts +0 -13
- package/dist/client/http/fetchVideos.d.ts.map +0 -1
- package/dist/client/http/fetchVideos.js +0 -36
- package/dist/client/http/index.d.ts +0 -19
- package/dist/client/http/index.d.ts.map +0 -1
- package/dist/client/http/index.js +0 -11
- package/dist/error-handling/circuit-breaker.d.ts +0 -262
- package/dist/error-handling/circuit-breaker.d.ts.map +0 -1
- package/dist/error-handling/circuit-breaker.js +0 -550
- package/dist/error-handling/retry.d.ts +0 -194
- package/dist/error-handling/retry.d.ts.map +0 -1
- package/dist/error-handling/retry.js +0 -455
- package/dist/errors/index.d.ts +0 -23
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -40
- package/dist/generated/agents/index.d.ts +0 -8
- package/dist/generated/agents/index.d.ts.map +0 -1
- package/dist/generated/agents/index.js +0 -7
- package/dist/generated/components/index.d.ts +0 -8
- package/dist/generated/components/index.d.ts.map +0 -1
- package/dist/generated/components/index.js +0 -7
- package/dist/generated/functions/index.d.ts +0 -8
- package/dist/generated/functions/index.d.ts.map +0 -1
- package/dist/generated/functions/index.js +0 -7
- package/dist/generated/hooks/index.d.ts +0 -8
- package/dist/generated/hooks/index.d.ts.map +0 -1
- package/dist/generated/hooks/index.js +0 -7
- package/dist/generated/plans/index.d.ts +0 -8
- package/dist/generated/plans/index.d.ts.map +0 -1
- package/dist/generated/plans/index.js +0 -7
- package/dist/generated/prompts/index.d.ts +0 -8
- package/dist/generated/prompts/index.d.ts.map +0 -1
- package/dist/generated/prompts/index.js +0 -7
- package/dist/generated/tools/index.d.ts +0 -8
- package/dist/generated/tools/index.d.ts.map +0 -1
- package/dist/generated/tools/index.js +0 -7
- package/dist/generated/types/supabase.d.ts +0 -193
- package/dist/generated/types/supabase.d.ts.map +0 -1
- package/dist/generated/types/supabase.js +0 -5
- package/dist/optimization/asset-optimizer.d.ts +0 -206
- package/dist/optimization/asset-optimizer.d.ts.map +0 -1
- package/dist/optimization/asset-optimizer.js +0 -336
- package/dist/optimization/build-optimizer.d.ts +0 -202
- package/dist/optimization/build-optimizer.d.ts.map +0 -1
- package/dist/optimization/build-optimizer.js +0 -271
- package/dist/optimization/bundle-analyzer.d.ts +0 -98
- package/dist/optimization/bundle-analyzer.d.ts.map +0 -1
- package/dist/optimization/bundle-analyzer.js +0 -346
- package/dist/optimization/code-splitting.d.ts +0 -121
- package/dist/optimization/code-splitting.d.ts.map +0 -1
- package/dist/optimization/code-splitting.js +0 -261
- package/dist/plugin/index.d.ts +0 -12
- package/dist/plugin/index.d.ts.map +0 -1
- package/dist/plugin/index.js +0 -4
- package/dist/security/audit.d.ts +0 -188
- package/dist/security/audit.d.ts.map +0 -1
- package/dist/security/audit.js +0 -433
- package/dist/security/auth.d.ts +0 -110
- package/dist/security/auth.d.ts.map +0 -1
- package/dist/security/auth.js +0 -257
- package/dist/security/authorization.d.ts +0 -211
- package/dist/security/authorization.d.ts.map +0 -1
- package/dist/security/authorization.js +0 -492
- package/dist/security/encryption.d.ts +0 -226
- package/dist/security/encryption.d.ts.map +0 -1
- package/dist/security/encryption.js +0 -534
- package/dist/security/gdpr-storage.d.ts +0 -102
- package/dist/security/gdpr-storage.d.ts.map +0 -1
- package/dist/security/gdpr-storage.js +0 -65
- package/dist/security/gdpr.d.ts +0 -320
- package/dist/security/gdpr.d.ts.map +0 -1
- package/dist/security/gdpr.js +0 -531
- package/dist/security/headers.d.ts +0 -184
- package/dist/security/headers.d.ts.map +0 -1
- package/dist/security/headers.js +0 -420
- package/dist/utils/jwt-validation.d.ts +0 -14
- package/dist/utils/jwt-validation.d.ts.map +0 -1
- package/dist/utils/jwt-validation.js +0 -36
- package/dist/utils/request-headers.d.ts +0 -15
- package/dist/utils/request-headers.d.ts.map +0 -1
- package/dist/utils/request-headers.js +0 -31
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GDPR Storage Abstraction
|
|
3
|
-
*
|
|
4
|
-
* Record-oriented storage interface for GDPR compliance data.
|
|
5
|
-
* Provides a clean seam for replacing the default in-memory implementation
|
|
6
|
-
* with a database-backed store in production.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* In-memory implementation of `BreachStorage`.
|
|
10
|
-
*
|
|
11
|
-
* WARNING: All data is lost on process restart or serverless cold start.
|
|
12
|
-
* GDPR requires breach records be retained — use database-backed storage in production.
|
|
13
|
-
*/
|
|
14
|
-
export class InMemoryBreachStorage {
|
|
15
|
-
breaches = new Map();
|
|
16
|
-
async setBreach(breach) {
|
|
17
|
-
this.breaches.set(breach.id, breach);
|
|
18
|
-
}
|
|
19
|
-
async getBreach(id) {
|
|
20
|
-
return this.breaches.get(id);
|
|
21
|
-
}
|
|
22
|
-
async getAllBreaches() {
|
|
23
|
-
return Array.from(this.breaches.values());
|
|
24
|
-
}
|
|
25
|
-
async updateBreach(id, updates) {
|
|
26
|
-
const existing = this.breaches.get(id);
|
|
27
|
-
if (existing) {
|
|
28
|
-
this.breaches.set(id, { ...existing, ...updates });
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* In-memory implementation of `GDPRStorage`.
|
|
34
|
-
*
|
|
35
|
-
* WARNING: All data is lost on process restart or serverless cold start.
|
|
36
|
-
* Use this only for development, testing, or as a reference implementation.
|
|
37
|
-
* Production deployments MUST supply a database-backed `GDPRStorage`.
|
|
38
|
-
*/
|
|
39
|
-
export class InMemoryGDPRStorage {
|
|
40
|
-
consents = new Map();
|
|
41
|
-
deletionRequests = new Map();
|
|
42
|
-
// ── Consent Records ──────────────────────────────────────────────
|
|
43
|
-
async setConsent(userId, type, record) {
|
|
44
|
-
this.consents.set(`${userId}:${type}`, record);
|
|
45
|
-
}
|
|
46
|
-
async getConsent(userId, type) {
|
|
47
|
-
return this.consents.get(`${userId}:${type}`);
|
|
48
|
-
}
|
|
49
|
-
async getConsentsByUser(userId) {
|
|
50
|
-
return Array.from(this.consents.values()).filter((c) => c.userId === userId);
|
|
51
|
-
}
|
|
52
|
-
async getAllConsents() {
|
|
53
|
-
return Array.from(this.consents.values());
|
|
54
|
-
}
|
|
55
|
-
// ── Deletion Requests ────────────────────────────────────────────
|
|
56
|
-
async setDeletionRequest(request) {
|
|
57
|
-
this.deletionRequests.set(request.id, request);
|
|
58
|
-
}
|
|
59
|
-
async getDeletionRequest(requestId) {
|
|
60
|
-
return this.deletionRequests.get(requestId);
|
|
61
|
-
}
|
|
62
|
-
async getDeletionRequestsByUser(userId) {
|
|
63
|
-
return Array.from(this.deletionRequests.values()).filter((r) => r.userId === userId);
|
|
64
|
-
}
|
|
65
|
-
}
|
package/dist/security/gdpr.d.ts
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GDPR Compliance Utilities
|
|
3
|
-
*
|
|
4
|
-
* Data privacy, consent management, data export, and right to be forgotten
|
|
5
|
-
*/
|
|
6
|
-
import { type BreachStorage, type GDPRStorage } from './gdpr-storage.js';
|
|
7
|
-
export type ConsentType = 'necessary' | 'functional' | 'analytics' | 'marketing' | 'personalization';
|
|
8
|
-
export type DataCategory = 'personal' | 'sensitive' | 'financial' | 'health' | 'behavioral' | 'location';
|
|
9
|
-
export interface ConsentRecord {
|
|
10
|
-
id: string;
|
|
11
|
-
userId: string;
|
|
12
|
-
type: ConsentType;
|
|
13
|
-
granted: boolean;
|
|
14
|
-
timestamp: string;
|
|
15
|
-
expiresAt?: string;
|
|
16
|
-
source: 'explicit' | 'implicit' | 'legitimate_interest';
|
|
17
|
-
version: string;
|
|
18
|
-
metadata?: Record<string, unknown>;
|
|
19
|
-
}
|
|
20
|
-
export interface DataProcessingPurpose {
|
|
21
|
-
id: string;
|
|
22
|
-
name: string;
|
|
23
|
-
description: string;
|
|
24
|
-
legalBasis: 'consent' | 'contract' | 'legal_obligation' | 'vital_interest' | 'public_interest' | 'legitimate_interest';
|
|
25
|
-
dataCategories: DataCategory[];
|
|
26
|
-
retentionPeriod: number;
|
|
27
|
-
consentRequired: boolean;
|
|
28
|
-
}
|
|
29
|
-
export interface PersonalDataExport {
|
|
30
|
-
userId: string;
|
|
31
|
-
exportedAt: string;
|
|
32
|
-
data: {
|
|
33
|
-
profile: Record<string, unknown>;
|
|
34
|
-
activities: Record<string, unknown>[];
|
|
35
|
-
consents: ConsentRecord[];
|
|
36
|
-
dataProcessing: DataProcessingPurpose[];
|
|
37
|
-
};
|
|
38
|
-
format: 'json' | 'csv' | 'pdf';
|
|
39
|
-
}
|
|
40
|
-
export interface DataDeletionRequest {
|
|
41
|
-
id: string;
|
|
42
|
-
userId: string;
|
|
43
|
-
requestedAt: string;
|
|
44
|
-
processedAt?: string;
|
|
45
|
-
status: 'pending' | 'processing' | 'completed' | 'failed';
|
|
46
|
-
dataCategories: DataCategory[];
|
|
47
|
-
reason?: string;
|
|
48
|
-
retainedData?: string[];
|
|
49
|
-
deletedData?: string[];
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Consent management system
|
|
53
|
-
*/
|
|
54
|
-
export declare class ConsentManager {
|
|
55
|
-
private readonly storage;
|
|
56
|
-
private consentVersion;
|
|
57
|
-
constructor(storage: GDPRStorage);
|
|
58
|
-
/**
|
|
59
|
-
* Grant consent
|
|
60
|
-
*/
|
|
61
|
-
grantConsent(userId: string, type: ConsentType, source?: ConsentRecord['source'], expiresIn?: number): Promise<ConsentRecord>;
|
|
62
|
-
/**
|
|
63
|
-
* Revoke consent
|
|
64
|
-
*/
|
|
65
|
-
revokeConsent(userId: string, type: ConsentType): Promise<void>;
|
|
66
|
-
/**
|
|
67
|
-
* Check if consent is granted
|
|
68
|
-
*/
|
|
69
|
-
hasConsent(userId: string, type: ConsentType): Promise<boolean>;
|
|
70
|
-
/**
|
|
71
|
-
* Get all consents for user
|
|
72
|
-
*/
|
|
73
|
-
getUserConsents(userId: string): Promise<ConsentRecord[]>;
|
|
74
|
-
/**
|
|
75
|
-
* Update consent version
|
|
76
|
-
*/
|
|
77
|
-
setConsentVersion(version: string): void;
|
|
78
|
-
/**
|
|
79
|
-
* Check if consent needs renewal
|
|
80
|
-
*/
|
|
81
|
-
needsRenewal(userId: string, type: ConsentType, maxAge: number): Promise<boolean>;
|
|
82
|
-
/**
|
|
83
|
-
* Get consent statistics
|
|
84
|
-
*/
|
|
85
|
-
getStatistics(): Promise<{
|
|
86
|
-
total: number;
|
|
87
|
-
granted: number;
|
|
88
|
-
revoked: number;
|
|
89
|
-
expired: number;
|
|
90
|
-
byType: Record<ConsentType, number>;
|
|
91
|
-
}>;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Data export system
|
|
95
|
-
*/
|
|
96
|
-
export declare class DataExportSystem {
|
|
97
|
-
/**
|
|
98
|
-
* Export user data
|
|
99
|
-
*/
|
|
100
|
-
exportUserData(userId: string, getUserData: (userId: string) => Promise<{
|
|
101
|
-
profile: Record<string, unknown>;
|
|
102
|
-
activities: Record<string, unknown>[];
|
|
103
|
-
consents: ConsentRecord[];
|
|
104
|
-
}>, format?: PersonalDataExport['format']): Promise<PersonalDataExport>;
|
|
105
|
-
/**
|
|
106
|
-
* Format export as JSON
|
|
107
|
-
*/
|
|
108
|
-
formatAsJSON(exportData: PersonalDataExport): string;
|
|
109
|
-
/**
|
|
110
|
-
* Format export as CSV
|
|
111
|
-
*/
|
|
112
|
-
formatAsCSV(exportData: PersonalDataExport): string;
|
|
113
|
-
/**
|
|
114
|
-
* Create download link
|
|
115
|
-
*/
|
|
116
|
-
createDownloadLink(content: string, _filename: string, mimeType: string): string;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Data deletion system (Right to be Forgotten)
|
|
120
|
-
*/
|
|
121
|
-
export declare class DataDeletionSystem {
|
|
122
|
-
private readonly storage;
|
|
123
|
-
constructor(storage: GDPRStorage);
|
|
124
|
-
/**
|
|
125
|
-
* Request data deletion
|
|
126
|
-
*/
|
|
127
|
-
requestDeletion(userId: string, dataCategories: DataCategory[], reason?: string): Promise<DataDeletionRequest>;
|
|
128
|
-
/**
|
|
129
|
-
* Process deletion request
|
|
130
|
-
*/
|
|
131
|
-
processDeletion(requestId: string, deleteData: (userId: string, categories: DataCategory[]) => Promise<{
|
|
132
|
-
deleted: string[];
|
|
133
|
-
retained: string[];
|
|
134
|
-
}>): Promise<void>;
|
|
135
|
-
/**
|
|
136
|
-
* Get deletion request
|
|
137
|
-
*/
|
|
138
|
-
getRequest(requestId: string): Promise<DataDeletionRequest | undefined>;
|
|
139
|
-
/**
|
|
140
|
-
* Get user deletion requests
|
|
141
|
-
*/
|
|
142
|
-
getUserRequests(userId: string): Promise<DataDeletionRequest[]>;
|
|
143
|
-
/**
|
|
144
|
-
* Check if data can be deleted
|
|
145
|
-
*/
|
|
146
|
-
canDelete(_dataCategory: DataCategory, legalBasis: DataProcessingPurpose['legalBasis']): boolean;
|
|
147
|
-
/**
|
|
148
|
-
* Calculate retention period
|
|
149
|
-
*/
|
|
150
|
-
calculateRetentionEnd(createdAt: Date, retentionPeriod: number): Date;
|
|
151
|
-
/**
|
|
152
|
-
* Check if data should be deleted (retention period expired)
|
|
153
|
-
*/
|
|
154
|
-
shouldDelete(createdAt: Date, retentionPeriod: number): boolean;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Data anonymization utilities
|
|
158
|
-
*/
|
|
159
|
-
/**
|
|
160
|
-
* Hash value (irreversible) using SHA-256
|
|
161
|
-
*/
|
|
162
|
-
declare function hashValue(value: string): string;
|
|
163
|
-
/**
|
|
164
|
-
* Anonymize user data
|
|
165
|
-
*/
|
|
166
|
-
declare function anonymizeUser(user: Record<string, unknown>): Record<string, unknown>;
|
|
167
|
-
/**
|
|
168
|
-
* Pseudonymize data (one-way, key-dependent)
|
|
169
|
-
*
|
|
170
|
-
* Uses HMAC-SHA256 — cryptographically bound to the key, resistant to
|
|
171
|
-
* length-extension attacks and GPU brute-force (unlike plain SHA-256).
|
|
172
|
-
*/
|
|
173
|
-
declare function pseudonymize(value: string, key: string): string;
|
|
174
|
-
/**
|
|
175
|
-
* Anonymize dataset
|
|
176
|
-
*/
|
|
177
|
-
declare function anonymizeDataset<T extends Record<string, unknown>>(data: T[], sensitiveFields: (keyof T)[]): T[];
|
|
178
|
-
/**
|
|
179
|
-
* K-anonymity check
|
|
180
|
-
*/
|
|
181
|
-
declare function checkKAnonymity<T extends Record<string, unknown>>(data: T[], quasiIdentifiers: (keyof T)[], k: number): boolean;
|
|
182
|
-
export declare const DataAnonymization: {
|
|
183
|
-
readonly anonymizeUser: typeof anonymizeUser;
|
|
184
|
-
readonly pseudonymize: typeof pseudonymize;
|
|
185
|
-
readonly hashValue: typeof hashValue;
|
|
186
|
-
readonly anonymizeDataset: typeof anonymizeDataset;
|
|
187
|
-
readonly checkKAnonymity: typeof checkKAnonymity;
|
|
188
|
-
};
|
|
189
|
-
/**
|
|
190
|
-
* Privacy policy manager
|
|
191
|
-
*/
|
|
192
|
-
export declare class PrivacyPolicyManager {
|
|
193
|
-
private policies;
|
|
194
|
-
private currentVersion;
|
|
195
|
-
/**
|
|
196
|
-
* Add policy version
|
|
197
|
-
*/
|
|
198
|
-
addPolicy(version: string, content: string, effectiveDate: Date): void;
|
|
199
|
-
/**
|
|
200
|
-
* Get current policy
|
|
201
|
-
*/
|
|
202
|
-
getCurrentPolicy(): {
|
|
203
|
-
version: string;
|
|
204
|
-
content: string;
|
|
205
|
-
effectiveDate: Date;
|
|
206
|
-
} | undefined;
|
|
207
|
-
/**
|
|
208
|
-
* Get policy by version
|
|
209
|
-
*/
|
|
210
|
-
getPolicy(version: string): {
|
|
211
|
-
version: string;
|
|
212
|
-
content: string;
|
|
213
|
-
effectiveDate: Date;
|
|
214
|
-
} | undefined;
|
|
215
|
-
/**
|
|
216
|
-
* Check if user accepted current policy
|
|
217
|
-
*/
|
|
218
|
-
hasAcceptedCurrent(userAcceptedVersion: string): boolean;
|
|
219
|
-
/**
|
|
220
|
-
* Get all versions
|
|
221
|
-
*/
|
|
222
|
-
getAllVersions(): string[];
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Cookie consent banner
|
|
226
|
-
*/
|
|
227
|
-
export interface CookieConsentConfig {
|
|
228
|
-
necessary: boolean;
|
|
229
|
-
functional: boolean;
|
|
230
|
-
analytics: boolean;
|
|
231
|
-
marketing: boolean;
|
|
232
|
-
}
|
|
233
|
-
export declare class CookieConsentManager {
|
|
234
|
-
private config;
|
|
235
|
-
/**
|
|
236
|
-
* Set consent configuration
|
|
237
|
-
*/
|
|
238
|
-
setConsent(config: Partial<CookieConsentConfig>): void;
|
|
239
|
-
/**
|
|
240
|
-
* Get consent configuration
|
|
241
|
-
*/
|
|
242
|
-
getConsent(): CookieConsentConfig;
|
|
243
|
-
/**
|
|
244
|
-
* Check if specific consent is granted
|
|
245
|
-
*/
|
|
246
|
-
hasConsent(type: keyof CookieConsentConfig): boolean;
|
|
247
|
-
/**
|
|
248
|
-
* Save to storage
|
|
249
|
-
*/
|
|
250
|
-
private saveToStorage;
|
|
251
|
-
/**
|
|
252
|
-
* Load from storage
|
|
253
|
-
*/
|
|
254
|
-
loadFromStorage(): void;
|
|
255
|
-
/**
|
|
256
|
-
* Clear consent
|
|
257
|
-
*/
|
|
258
|
-
clearConsent(): void;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Data breach notification system
|
|
262
|
-
*/
|
|
263
|
-
export interface DataBreach {
|
|
264
|
-
id: string;
|
|
265
|
-
detectedAt: string;
|
|
266
|
-
reportedAt?: string;
|
|
267
|
-
type: 'unauthorized_access' | 'data_loss' | 'data_leak' | 'system_compromise';
|
|
268
|
-
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
269
|
-
affectedUsers: string[];
|
|
270
|
-
dataCategories: DataCategory[];
|
|
271
|
-
description: string;
|
|
272
|
-
mitigation?: string;
|
|
273
|
-
status: 'detected' | 'investigating' | 'notified' | 'resolved';
|
|
274
|
-
}
|
|
275
|
-
export declare class DataBreachManager {
|
|
276
|
-
private readonly storage;
|
|
277
|
-
constructor(storage?: BreachStorage);
|
|
278
|
-
/**
|
|
279
|
-
* Report data breach
|
|
280
|
-
*/
|
|
281
|
-
reportBreach(breach: Omit<DataBreach, 'id' | 'detectedAt' | 'status'>): Promise<DataBreach>;
|
|
282
|
-
/**
|
|
283
|
-
* Notify authorities (required within 72 hours under GDPR)
|
|
284
|
-
*/
|
|
285
|
-
notifyAuthorities(breach: DataBreach): Promise<void>;
|
|
286
|
-
/**
|
|
287
|
-
* Notify affected users
|
|
288
|
-
*/
|
|
289
|
-
notifyAffectedUsers(breachId: string, notifyFn: (userId: string, breach: DataBreach) => Promise<void>): Promise<void>;
|
|
290
|
-
/**
|
|
291
|
-
* Check if breach notification is required
|
|
292
|
-
*/
|
|
293
|
-
requiresNotification(breach: DataBreach): boolean;
|
|
294
|
-
/**
|
|
295
|
-
* Get breach
|
|
296
|
-
*/
|
|
297
|
-
getBreach(id: string): Promise<DataBreach | undefined>;
|
|
298
|
-
/**
|
|
299
|
-
* Get all breaches
|
|
300
|
-
*/
|
|
301
|
-
getAllBreaches(): Promise<DataBreach[]>;
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Factory functions for GDPR subsystems.
|
|
305
|
-
*
|
|
306
|
-
* `ConsentManager` and `DataDeletionSystem` require a `GDPRStorage` implementation.
|
|
307
|
-
* Use `InMemoryGDPRStorage` only in tests — production MUST use a database-backed store.
|
|
308
|
-
*
|
|
309
|
-
* `DataExportSystem`, `PrivacyPolicyManager`, `CookieConsentManager`, and
|
|
310
|
-
* `DataBreachManager` are stateless or client-side only, so singletons are safe.
|
|
311
|
-
*/
|
|
312
|
-
export declare function createConsentManager(storage: GDPRStorage): ConsentManager;
|
|
313
|
-
export declare function createDataDeletionSystem(storage: GDPRStorage): DataDeletionSystem;
|
|
314
|
-
export declare const dataExportSystem: DataExportSystem;
|
|
315
|
-
export declare const privacyPolicyManager: PrivacyPolicyManager;
|
|
316
|
-
export declare const cookieConsentManager: CookieConsentManager;
|
|
317
|
-
export declare function createDataBreachManager(storage?: BreachStorage): DataBreachManager;
|
|
318
|
-
export declare const dataBreachManager: DataBreachManager;
|
|
319
|
-
export {};
|
|
320
|
-
//# sourceMappingURL=gdpr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdpr.d.ts","sourceRoot":"","sources":["../../src/security/gdpr.ts"],"names":[],"mappings":"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"}
|