couchloop-eq-mcp 1.0.4 → 1.1.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 (282) hide show
  1. package/README.md +24 -11
  2. package/dist/developer/analyzers/bloat-detector.d.ts +89 -0
  3. package/dist/developer/analyzers/bloat-detector.d.ts.map +1 -0
  4. package/dist/developer/analyzers/bloat-detector.js +483 -0
  5. package/dist/developer/analyzers/bloat-detector.js.map +1 -0
  6. package/dist/developer/backup/auto-backup.d.ts +96 -0
  7. package/dist/developer/backup/auto-backup.d.ts.map +1 -0
  8. package/dist/developer/backup/auto-backup.js +346 -0
  9. package/dist/developer/backup/auto-backup.js.map +1 -0
  10. package/dist/developer/blockers/package-blocker.d.ts +33 -0
  11. package/dist/developer/blockers/package-blocker.d.ts.map +1 -0
  12. package/dist/developer/blockers/package-blocker.js +224 -0
  13. package/dist/developer/blockers/package-blocker.js.map +1 -0
  14. package/dist/developer/evaluators/ai-error-preventer.d.ts +54 -0
  15. package/dist/developer/evaluators/ai-error-preventer.d.ts.map +1 -0
  16. package/dist/developer/evaluators/ai-error-preventer.js +270 -0
  17. package/dist/developer/evaluators/ai-error-preventer.js.map +1 -0
  18. package/dist/developer/evaluators/build-context-detector.d.ts +44 -0
  19. package/dist/developer/evaluators/build-context-detector.d.ts.map +1 -0
  20. package/dist/developer/evaluators/build-context-detector.js +258 -0
  21. package/dist/developer/evaluators/build-context-detector.js.map +1 -0
  22. package/dist/developer/evaluators/package-evaluator.d.ts +37 -0
  23. package/dist/developer/evaluators/package-evaluator.d.ts.map +1 -0
  24. package/dist/developer/evaluators/package-evaluator.js +278 -0
  25. package/dist/developer/evaluators/package-evaluator.js.map +1 -0
  26. package/dist/developer/guards/file-guardian.d.ts +79 -0
  27. package/dist/developer/guards/file-guardian.d.ts.map +1 -0
  28. package/dist/developer/guards/file-guardian.js +309 -0
  29. package/dist/developer/guards/file-guardian.js.map +1 -0
  30. package/dist/developer/managers/context-manager.d.ts +61 -0
  31. package/dist/developer/managers/context-manager.d.ts.map +1 -0
  32. package/dist/developer/managers/context-manager.js +302 -0
  33. package/dist/developer/managers/context-manager.js.map +1 -0
  34. package/dist/developer/metrics/complexity-calculator.d.ts +52 -0
  35. package/dist/developer/metrics/complexity-calculator.d.ts.map +1 -0
  36. package/dist/developer/metrics/complexity-calculator.js +259 -0
  37. package/dist/developer/metrics/complexity-calculator.js.map +1 -0
  38. package/dist/developer/reports/review-summary.d.ts +49 -0
  39. package/dist/developer/reports/review-summary.d.ts.map +1 -0
  40. package/dist/developer/reports/review-summary.js +249 -0
  41. package/dist/developer/reports/review-summary.js.map +1 -0
  42. package/dist/developer/scanners/review-assistant.d.ts +41 -0
  43. package/dist/developer/scanners/review-assistant.d.ts.map +1 -0
  44. package/dist/developer/scanners/review-assistant.js +374 -0
  45. package/dist/developer/scanners/review-assistant.js.map +1 -0
  46. package/dist/developer/scanners/secret-scanner.d.ts +66 -0
  47. package/dist/developer/scanners/secret-scanner.d.ts.map +1 -0
  48. package/dist/developer/scanners/secret-scanner.js +287 -0
  49. package/dist/developer/scanners/secret-scanner.js.map +1 -0
  50. package/dist/developer/scanners/sql-injection-detector.d.ts +54 -0
  51. package/dist/developer/scanners/sql-injection-detector.d.ts.map +1 -0
  52. package/dist/developer/scanners/sql-injection-detector.js +174 -0
  53. package/dist/developer/scanners/sql-injection-detector.js.map +1 -0
  54. package/dist/developer/scanners/xss-detector.d.ts +60 -0
  55. package/dist/developer/scanners/xss-detector.d.ts.map +1 -0
  56. package/dist/developer/scanners/xss-detector.js +229 -0
  57. package/dist/developer/scanners/xss-detector.js.map +1 -0
  58. package/dist/developer/types/ai-errors.d.ts +34 -0
  59. package/dist/developer/types/ai-errors.d.ts.map +1 -0
  60. package/dist/developer/types/ai-errors.js +271 -0
  61. package/dist/developer/types/ai-errors.js.map +1 -0
  62. package/dist/developer/types/package.d.ts +32 -0
  63. package/dist/developer/types/package.d.ts.map +1 -0
  64. package/dist/developer/types/package.js +5 -0
  65. package/dist/developer/types/package.js.map +1 -0
  66. package/dist/developer/updaters/dependency-updater.d.ts +102 -0
  67. package/dist/developer/updaters/dependency-updater.d.ts.map +1 -0
  68. package/dist/developer/updaters/dependency-updater.js +472 -0
  69. package/dist/developer/updaters/dependency-updater.js.map +1 -0
  70. package/dist/developer/validators/cargo.d.ts +14 -0
  71. package/dist/developer/validators/cargo.d.ts.map +1 -0
  72. package/dist/developer/validators/cargo.js +132 -0
  73. package/dist/developer/validators/cargo.js.map +1 -0
  74. package/dist/developer/validators/gem.d.ts +14 -0
  75. package/dist/developer/validators/gem.d.ts.map +1 -0
  76. package/dist/developer/validators/gem.js +85 -0
  77. package/dist/developer/validators/gem.js.map +1 -0
  78. package/dist/developer/validators/go.d.ts +14 -0
  79. package/dist/developer/validators/go.d.ts.map +1 -0
  80. package/dist/developer/validators/go.js +138 -0
  81. package/dist/developer/validators/go.js.map +1 -0
  82. package/dist/developer/validators/maven.d.ts +14 -0
  83. package/dist/developer/validators/maven.d.ts.map +1 -0
  84. package/dist/developer/validators/maven.js +99 -0
  85. package/dist/developer/validators/maven.js.map +1 -0
  86. package/dist/developer/validators/npm.d.ts +14 -0
  87. package/dist/developer/validators/npm.d.ts.map +1 -0
  88. package/dist/developer/validators/npm.js +96 -0
  89. package/dist/developer/validators/npm.js.map +1 -0
  90. package/dist/developer/validators/nuget.d.ts +15 -0
  91. package/dist/developer/validators/nuget.d.ts.map +1 -0
  92. package/dist/developer/validators/nuget.js +107 -0
  93. package/dist/developer/validators/nuget.js.map +1 -0
  94. package/dist/developer/validators/pypi.d.ts +14 -0
  95. package/dist/developer/validators/pypi.d.ts.map +1 -0
  96. package/dist/developer/validators/pypi.js +118 -0
  97. package/dist/developer/validators/pypi.js.map +1 -0
  98. package/dist/developer/validators/registry-manager.d.ts +37 -0
  99. package/dist/developer/validators/registry-manager.d.ts.map +1 -0
  100. package/dist/developer/validators/registry-manager.js +89 -0
  101. package/dist/developer/validators/registry-manager.js.map +1 -0
  102. package/dist/developer/validators/version-checker.d.ts +145 -0
  103. package/dist/developer/validators/version-checker.d.ts.map +1 -0
  104. package/dist/developer/validators/version-checker.js +529 -0
  105. package/dist/developer/validators/version-checker.js.map +1 -0
  106. package/dist/server/index.js.map +1 -1
  107. package/dist/server/middleware/auth.d.ts +7 -9
  108. package/dist/server/middleware/auth.d.ts.map +1 -1
  109. package/dist/server/middleware/auth.js.map +1 -1
  110. package/dist/tools/check-versions.d.ts +100 -0
  111. package/dist/tools/check-versions.d.ts.map +1 -0
  112. package/dist/tools/check-versions.js +328 -0
  113. package/dist/tools/check-versions.js.map +1 -0
  114. package/dist/tools/detect-code-smell.d.ts +9 -0
  115. package/dist/tools/detect-code-smell.d.ts.map +1 -0
  116. package/dist/tools/detect-code-smell.js +231 -0
  117. package/dist/tools/detect-code-smell.js.map +1 -0
  118. package/dist/tools/index.d.ts +471 -0
  119. package/dist/tools/index.d.ts.map +1 -1
  120. package/dist/tools/index.js +178 -0
  121. package/dist/tools/index.js.map +1 -1
  122. package/dist/tools/journey.js +1 -1
  123. package/dist/tools/journey.js.map +1 -1
  124. package/dist/tools/pre-review-code.d.ts +71 -0
  125. package/dist/tools/pre-review-code.d.ts.map +1 -0
  126. package/dist/tools/pre-review-code.js +159 -0
  127. package/dist/tools/pre-review-code.js.map +1 -0
  128. package/dist/tools/preserve-context.d.ts +27 -0
  129. package/dist/tools/preserve-context.d.ts.map +1 -0
  130. package/dist/tools/preserve-context.js +98 -0
  131. package/dist/tools/preserve-context.js.map +1 -0
  132. package/dist/tools/protect-files.d.ts +224 -0
  133. package/dist/tools/protect-files.d.ts.map +1 -0
  134. package/dist/tools/protect-files.js +286 -0
  135. package/dist/tools/protect-files.js.map +1 -0
  136. package/dist/tools/scan-security.d.ts +38 -0
  137. package/dist/tools/scan-security.d.ts.map +1 -0
  138. package/dist/tools/scan-security.js +237 -0
  139. package/dist/tools/scan-security.js.map +1 -0
  140. package/dist/tools/validate_packages.d.ts +8 -0
  141. package/dist/tools/validate_packages.d.ts.map +1 -0
  142. package/dist/tools/validate_packages.js +159 -0
  143. package/dist/tools/validate_packages.js.map +1 -0
  144. package/dist/types/auth.d.ts.map +1 -1
  145. package/dist/types/auth.js +1 -2
  146. package/dist/types/auth.js.map +1 -1
  147. package/dist/types/context.d.ts +46 -0
  148. package/dist/types/context.d.ts.map +1 -0
  149. package/dist/types/context.js +17 -0
  150. package/dist/types/context.js.map +1 -0
  151. package/dist/types/file-protection.d.ts +50 -0
  152. package/dist/types/file-protection.d.ts.map +1 -0
  153. package/dist/types/file-protection.js +9 -0
  154. package/dist/types/file-protection.js.map +1 -0
  155. package/dist/utils/errorHandler.d.ts.map +1 -1
  156. package/dist/utils/errorHandler.js +2 -1
  157. package/dist/utils/errorHandler.js.map +1 -1
  158. package/package.json +30 -4
  159. package/dist/db/migrate.d.ts +0 -4
  160. package/dist/db/migrate.d.ts.map +0 -1
  161. package/dist/db/migrate.js +0 -34
  162. package/dist/db/migrate.js.map +0 -1
  163. package/dist/db/migrations/schema.d.ts +0 -1074
  164. package/dist/db/migrations/schema.d.ts.map +0 -1
  165. package/dist/db/migrations/schema.js +0 -160
  166. package/dist/db/migrations/schema.js.map +0 -1
  167. package/dist/db/schema.d.ts +0 -1576
  168. package/dist/db/schema.d.ts.map +0 -1
  169. package/dist/db/schema.js +0 -204
  170. package/dist/db/schema.js.map +0 -1
  171. package/dist/db/seed.d.ts +0 -4
  172. package/dist/db/seed.d.ts.map +0 -1
  173. package/dist/db/seed.js +0 -57
  174. package/dist/db/seed.js.map +0 -1
  175. package/dist/db/seedOAuth.d.ts +0 -4
  176. package/dist/db/seedOAuth.d.ts.map +0 -1
  177. package/dist/db/seedOAuth.js +0 -76
  178. package/dist/db/seedOAuth.js.map +0 -1
  179. package/dist/governance/config.d.ts +0 -66
  180. package/dist/governance/config.d.ts.map +0 -1
  181. package/dist/governance/config.js +0 -238
  182. package/dist/governance/config.js.map +0 -1
  183. package/dist/governance/detectors/hallucination.d.ts +0 -61
  184. package/dist/governance/detectors/hallucination.d.ts.map +0 -1
  185. package/dist/governance/detectors/hallucination.js +0 -338
  186. package/dist/governance/detectors/hallucination.js.map +0 -1
  187. package/dist/governance/detectors/inconsistency.d.ts +0 -99
  188. package/dist/governance/detectors/inconsistency.d.ts.map +0 -1
  189. package/dist/governance/detectors/inconsistency.js +0 -548
  190. package/dist/governance/detectors/inconsistency.js.map +0 -1
  191. package/dist/governance/detectors/toneDrift.d.ts +0 -63
  192. package/dist/governance/detectors/toneDrift.d.ts.map +0 -1
  193. package/dist/governance/detectors/toneDrift.js +0 -421
  194. package/dist/governance/detectors/toneDrift.js.map +0 -1
  195. package/dist/governance/detectors/unsafeReasoning.d.ts +0 -54
  196. package/dist/governance/detectors/unsafeReasoning.d.ts.map +0 -1
  197. package/dist/governance/detectors/unsafeReasoning.js +0 -473
  198. package/dist/governance/detectors/unsafeReasoning.js.map +0 -1
  199. package/dist/governance/evaluationEngine.d.ts +0 -112
  200. package/dist/governance/evaluationEngine.d.ts.map +0 -1
  201. package/dist/governance/evaluationEngine.js +0 -265
  202. package/dist/governance/evaluationEngine.js.map +0 -1
  203. package/dist/governance/intervention.d.ts +0 -81
  204. package/dist/governance/intervention.d.ts.map +0 -1
  205. package/dist/governance/intervention.js +0 -405
  206. package/dist/governance/intervention.js.map +0 -1
  207. package/dist/server/oauth/anomalyDetection.d.ts +0 -146
  208. package/dist/server/oauth/anomalyDetection.d.ts.map +0 -1
  209. package/dist/server/oauth/anomalyDetection.js +0 -405
  210. package/dist/server/oauth/anomalyDetection.js.map +0 -1
  211. package/dist/server/oauth/authServer.d.ts +0 -61
  212. package/dist/server/oauth/authServer.d.ts.map +0 -1
  213. package/dist/server/oauth/authServer.js +0 -283
  214. package/dist/server/oauth/authServer.js.map +0 -1
  215. package/dist/server/oauth/dpop.d.ts +0 -135
  216. package/dist/server/oauth/dpop.d.ts.map +0 -1
  217. package/dist/server/oauth/dpop.js +0 -338
  218. package/dist/server/oauth/dpop.js.map +0 -1
  219. package/dist/server/oauth/gdpr/consent.d.ts +0 -173
  220. package/dist/server/oauth/gdpr/consent.d.ts.map +0 -1
  221. package/dist/server/oauth/gdpr/consent.js +0 -388
  222. package/dist/server/oauth/gdpr/consent.js.map +0 -1
  223. package/dist/server/oauth/gdpr/dataPortability.d.ts +0 -214
  224. package/dist/server/oauth/gdpr/dataPortability.d.ts.map +0 -1
  225. package/dist/server/oauth/gdpr/dataPortability.js +0 -486
  226. package/dist/server/oauth/gdpr/dataPortability.js.map +0 -1
  227. package/dist/server/oauth/gdpr/index.d.ts +0 -103
  228. package/dist/server/oauth/gdpr/index.d.ts.map +0 -1
  229. package/dist/server/oauth/gdpr/index.js +0 -273
  230. package/dist/server/oauth/gdpr/index.js.map +0 -1
  231. package/dist/server/oauth/gdpr/rightToErasure.d.ts +0 -184
  232. package/dist/server/oauth/gdpr/rightToErasure.d.ts.map +0 -1
  233. package/dist/server/oauth/gdpr/rightToErasure.js +0 -527
  234. package/dist/server/oauth/gdpr/rightToErasure.js.map +0 -1
  235. package/dist/server/oauth/monitoring/securityMonitor.d.ts +0 -218
  236. package/dist/server/oauth/monitoring/securityMonitor.d.ts.map +0 -1
  237. package/dist/server/oauth/monitoring/securityMonitor.js +0 -615
  238. package/dist/server/oauth/monitoring/securityMonitor.js.map +0 -1
  239. package/dist/server/oauth/pkce.d.ts +0 -61
  240. package/dist/server/oauth/pkce.d.ts.map +0 -1
  241. package/dist/server/oauth/pkce.js +0 -157
  242. package/dist/server/oauth/pkce.js.map +0 -1
  243. package/dist/server/oauth/providers/base.d.ts +0 -147
  244. package/dist/server/oauth/providers/base.d.ts.map +0 -1
  245. package/dist/server/oauth/providers/base.js +0 -312
  246. package/dist/server/oauth/providers/base.js.map +0 -1
  247. package/dist/server/oauth/providers/github.d.ts +0 -55
  248. package/dist/server/oauth/providers/github.d.ts.map +0 -1
  249. package/dist/server/oauth/providers/github.js +0 -225
  250. package/dist/server/oauth/providers/github.js.map +0 -1
  251. package/dist/server/oauth/providers/google.d.ts +0 -49
  252. package/dist/server/oauth/providers/google.d.ts.map +0 -1
  253. package/dist/server/oauth/providers/google.js +0 -153
  254. package/dist/server/oauth/providers/google.js.map +0 -1
  255. package/dist/server/oauth/providers/index.d.ts +0 -9
  256. package/dist/server/oauth/providers/index.d.ts.map +0 -1
  257. package/dist/server/oauth/providers/index.js +0 -24
  258. package/dist/server/oauth/providers/index.js.map +0 -1
  259. package/dist/server/oauth/refreshTokenRotation.d.ts +0 -114
  260. package/dist/server/oauth/refreshTokenRotation.d.ts.map +0 -1
  261. package/dist/server/oauth/refreshTokenRotation.js +0 -344
  262. package/dist/server/oauth/refreshTokenRotation.js.map +0 -1
  263. package/dist/server/oauth/security.d.ts +0 -101
  264. package/dist/server/oauth/security.d.ts.map +0 -1
  265. package/dist/server/oauth/security.js +0 -268
  266. package/dist/server/oauth/security.js.map +0 -1
  267. package/dist/server/oauth/tokenEncryption.d.ts +0 -80
  268. package/dist/server/oauth/tokenEncryption.d.ts.map +0 -1
  269. package/dist/server/oauth/tokenEncryption.js +0 -218
  270. package/dist/server/oauth/tokenEncryption.js.map +0 -1
  271. package/dist/tools/sendMessage-complex-backup.d.ts +0 -6
  272. package/dist/tools/sendMessage-complex-backup.d.ts.map +0 -1
  273. package/dist/tools/sendMessage-complex-backup.js +0 -545
  274. package/dist/tools/sendMessage-complex-backup.js.map +0 -1
  275. package/dist/tools/sendMessage-revised.d.ts +0 -11
  276. package/dist/tools/sendMessage-revised.d.ts.map +0 -1
  277. package/dist/tools/sendMessage-revised.js +0 -429
  278. package/dist/tools/sendMessage-revised.js.map +0 -1
  279. package/dist/tools/sendMessage-truly-simple.d.ts +0 -8
  280. package/dist/tools/sendMessage-truly-simple.d.ts.map +0 -1
  281. package/dist/tools/sendMessage-truly-simple.js +0 -299
  282. package/dist/tools/sendMessage-truly-simple.js.map +0 -1
@@ -1,273 +0,0 @@
1
- import { consentManager, ProcessingPurpose } from './consent.js';
2
- import { dataPortabilityManager, ExportFormat, DataCategory } from './dataPortability.js';
3
- import { rightToErasureManager, DeletionScope } from './rightToErasure.js';
4
- import { logger } from '../../../utils/logger.js';
5
- /**
6
- * GDPR Compliance Manager
7
- * Central interface for all GDPR-related operations
8
- */
9
- export class GDPRComplianceManager {
10
- /**
11
- * Initialize GDPR compliance
12
- */
13
- async initialize() {
14
- logger.info('Initializing GDPR compliance manager');
15
- // Set up periodic tasks
16
- this.setupPeriodicTasks();
17
- // Load privacy policies
18
- await this.loadPrivacyPolicies();
19
- logger.info('GDPR compliance manager initialized');
20
- }
21
- /**
22
- * Handle user registration with GDPR compliance
23
- */
24
- async registerUser(userId, email, options) {
25
- // Check parental consent requirement
26
- if (options.birthDate && options.country) {
27
- const requiresParental = await consentManager.requiresParentalConsent(options.birthDate, options.country);
28
- if (requiresParental) {
29
- throw new Error('Parental consent required for registration');
30
- }
31
- }
32
- // Record essential consents
33
- await consentManager.recordConsent(userId, ProcessingPurpose.AUTHENTICATION, true, {
34
- ipAddress: options.ipAddress,
35
- userAgent: options.userAgent,
36
- });
37
- await consentManager.recordConsent(userId, ProcessingPurpose.PROFILE_DATA, true, {
38
- ipAddress: options.ipAddress,
39
- userAgent: options.userAgent,
40
- });
41
- // Record optional consents
42
- if (options.marketingConsent) {
43
- await consentManager.recordConsent(userId, ProcessingPurpose.MARKETING, true, {
44
- ipAddress: options.ipAddress,
45
- userAgent: options.userAgent,
46
- });
47
- }
48
- // Record analytics consent (legitimate interest)
49
- await consentManager.recordConsent(userId, ProcessingPurpose.ANALYTICS, true, {
50
- ipAddress: options.ipAddress,
51
- userAgent: options.userAgent,
52
- });
53
- logger.info(`GDPR compliant registration completed for user ${userId}`);
54
- }
55
- /**
56
- * Handle data access request
57
- */
58
- async handleDataAccessRequest(userId, requestedBy, categories) {
59
- // Verify requester authorization
60
- if (requestedBy !== userId) {
61
- // Check if requester has legal authorization
62
- const authorized = await this.verifyDataAccessAuthorization(requestedBy, userId);
63
- if (!authorized) {
64
- throw new Error('Unauthorized data access request');
65
- }
66
- }
67
- // Create export request
68
- const exportRequest = await dataPortabilityManager.requestExport(userId, categories || [DataCategory.ALL], ExportFormat.JSON, {
69
- requestedBy,
70
- reason: 'GDPR Article 15 - Right of access',
71
- });
72
- logger.info(`Data access request initiated for user ${userId}: ${exportRequest.id}`);
73
- return exportRequest.id;
74
- }
75
- /**
76
- * Handle data portability request
77
- */
78
- async handlePortabilityRequest(userId, format = ExportFormat.JSON, encrypted = true) {
79
- const exportRequest = await dataPortabilityManager.requestExport(userId, [DataCategory.ALL], format, {
80
- reason: 'GDPR Article 20 - Data portability',
81
- encrypted,
82
- });
83
- logger.info(`Data portability request initiated for user ${userId}: ${exportRequest.id}`);
84
- return exportRequest.id;
85
- }
86
- /**
87
- * Handle deletion request
88
- */
89
- async handleDeletionRequest(userId, reason, immediate = false) {
90
- const deletionRequest = await rightToErasureManager.requestDeletion(userId, DeletionScope.FULL, {
91
- reason: reason || 'GDPR Article 17 - Right to erasure',
92
- immediate,
93
- });
94
- logger.info(`Deletion request initiated for user ${userId}: ${deletionRequest.id}`);
95
- return deletionRequest.id;
96
- }
97
- /**
98
- * Update consent preferences
99
- */
100
- async updateConsent(userId, purpose, granted, context) {
101
- await consentManager.recordConsent(userId, purpose, granted, context);
102
- logger.info(`Consent updated for user ${userId}: ${purpose} = ${granted}`);
103
- }
104
- /**
105
- * Check data processing lawfulness
106
- */
107
- async isProcessingLawful(userId, purpose) {
108
- return await consentManager.hasValidConsent(userId, purpose);
109
- }
110
- /**
111
- * Handle data breach notification
112
- */
113
- async handleDataBreach(affectedUsers, breachDetails) {
114
- logger.error(`Data breach detected affecting ${affectedUsers.length} users`);
115
- // Within 72 hours requirement (GDPR Article 33)
116
- const deadline = new Date(breachDetails.discoveredAt.getTime() + 72 * 3600000);
117
- // Notify supervisory authority
118
- await this.notifySupervisoryAuthority(breachDetails);
119
- // Notify affected users if high risk (GDPR Article 34)
120
- if (breachDetails.severity === 'high' || breachDetails.severity === 'critical') {
121
- for (const userId of affectedUsers) {
122
- await this.notifyUserOfBreach(userId, breachDetails);
123
- }
124
- }
125
- // Document breach
126
- await this.documentDataBreach({
127
- ...breachDetails,
128
- affectedUsers: affectedUsers.length,
129
- notificationDeadline: deadline,
130
- notificationsSent: new Date(),
131
- });
132
- }
133
- /**
134
- * Generate privacy report
135
- */
136
- async generatePrivacyReport(startDate, endDate) {
137
- // This would aggregate data from various sources
138
- return {
139
- totalUsers: 0,
140
- consentStats: {},
141
- dataRequests: {
142
- access: 0,
143
- portability: 0,
144
- deletion: 0,
145
- },
146
- breaches: 0,
147
- crossBorderTransfers: 0,
148
- };
149
- }
150
- /**
151
- * Verify age and get parental consent if needed
152
- */
153
- async verifyAgeAndConsent(userId, birthDate, country, parentEmail) {
154
- const requiresParental = await consentManager.requiresParentalConsent(birthDate, country);
155
- if (requiresParental && !parentEmail) {
156
- return {
157
- ageVerified: false,
158
- requiresParental: true,
159
- };
160
- }
161
- if (requiresParental && parentEmail) {
162
- // Generate parental consent request
163
- const token = await this.generateParentalConsentToken(userId, parentEmail);
164
- return {
165
- ageVerified: false,
166
- requiresParental: true,
167
- parentalConsentToken: token,
168
- };
169
- }
170
- return {
171
- ageVerified: true,
172
- requiresParental: false,
173
- };
174
- }
175
- /**
176
- * Handle cross-border data transfer
177
- */
178
- async authorizeCrossBorderTransfer(userId, destinationCountry, purpose, safeguards) {
179
- // Check if destination has adequacy decision
180
- const hasAdequacy = this.checkAdequacyDecision(destinationCountry);
181
- if (hasAdequacy) {
182
- await this.logCrossBorderTransfer(userId, destinationCountry, 'adequacy');
183
- return true;
184
- }
185
- // Check appropriate safeguards (GDPR Article 46)
186
- switch (safeguards) {
187
- case 'scc': // Standard Contractual Clauses
188
- case 'bcr': // Binding Corporate Rules
189
- await this.logCrossBorderTransfer(userId, destinationCountry, safeguards);
190
- return true;
191
- case 'consent':
192
- // Explicit consent needed for transfers without safeguards
193
- const hasConsent = await this.getExplicitTransferConsent(userId, destinationCountry, purpose);
194
- if (hasConsent) {
195
- await this.logCrossBorderTransfer(userId, destinationCountry, 'consent');
196
- return true;
197
- }
198
- return false;
199
- default:
200
- return false;
201
- }
202
- }
203
- /**
204
- * Setup periodic GDPR tasks
205
- */
206
- setupPeriodicTasks() {
207
- // Daily: Clean up expired exports
208
- setInterval(async () => {
209
- await dataPortabilityManager.cleanupExpiredExports();
210
- }, 24 * 3600000);
211
- // Weekly: Process scheduled deletions
212
- setInterval(async () => {
213
- await this.processScheduledDeletions();
214
- }, 7 * 24 * 3600000);
215
- // Monthly: Review consent validity
216
- setInterval(async () => {
217
- await this.reviewConsentValidity();
218
- }, 30 * 24 * 3600000);
219
- }
220
- // Helper methods
221
- async verifyDataAccessAuthorization(requestedBy, userId) {
222
- // Check if requester has legal authorization
223
- // e.g., power of attorney, parental rights, etc.
224
- return false;
225
- }
226
- async notifySupervisoryAuthority(details) {
227
- // Notify relevant data protection authority
228
- logger.info('Supervisory authority notified of data breach');
229
- }
230
- async notifyUserOfBreach(userId, details) {
231
- // Send breach notification to user
232
- logger.info(`User ${userId} notified of data breach`);
233
- }
234
- async documentDataBreach(details) {
235
- // Document breach in audit log
236
- logger.info('Data breach documented');
237
- }
238
- async loadPrivacyPolicies() {
239
- // Load current privacy policy versions
240
- }
241
- async generateParentalConsentToken(userId, parentEmail) {
242
- // Generate token for parental consent
243
- return `parent_consent_${Date.now()}`;
244
- }
245
- checkAdequacyDecision(country) {
246
- // Countries with EU adequacy decisions
247
- const adequacyCountries = [
248
- 'AD', 'AR', 'CA', 'CH', 'FO', 'GB', 'GG', 'IL',
249
- 'IM', 'JE', 'JP', 'NZ', 'KR', 'UY',
250
- ];
251
- return adequacyCountries.includes(country);
252
- }
253
- async getExplicitTransferConsent(userId, country, purpose) {
254
- // Check for explicit consent for data transfer
255
- return false;
256
- }
257
- async logCrossBorderTransfer(userId, country, basis) {
258
- logger.info(`Cross-border transfer: user=${userId}, country=${country}, basis=${basis}`);
259
- }
260
- async processScheduledDeletions() {
261
- // Process any scheduled deletion requests
262
- logger.info('Processing scheduled deletions');
263
- }
264
- async reviewConsentValidity() {
265
- // Review and refresh expired consents
266
- logger.info('Reviewing consent validity');
267
- }
268
- }
269
- // Export singleton instance
270
- export const gdprManager = new GDPRComplianceManager();
271
- // Re-export components
272
- export { consentManager, ConsentType, ProcessingPurpose, dataPortabilityManager, ExportFormat, DataCategory, rightToErasureManager, DeletionScope, } from './consent.js';
273
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/oauth/gdpr/index.ts"],"names":[],"mappings":"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"}
@@ -1,184 +0,0 @@
1
- /**
2
- * Deletion scope options
3
- */
4
- export declare enum DeletionScope {
5
- FULL = "full",// Complete account deletion
6
- PARTIAL = "partial",// Selective data deletion
7
- ANONYMIZE = "anonymize",// Replace with anonymous data
8
- PSEUDONYMIZE = "pseudonymize",// Replace with pseudonyms
9
- ARCHIVE = "archive"
10
- }
11
- /**
12
- * Data retention reasons (lawful basis to refuse deletion)
13
- */
14
- export declare enum RetentionReason {
15
- LEGAL_OBLIGATION = "legal_obligation",// Legal requirement to retain
16
- CONTRACT_FULFILLMENT = "contract",// Needed for contract
17
- VITAL_INTERESTS = "vital_interests",// Protect vital interests
18
- PUBLIC_INTEREST = "public_interest",// Public interest task
19
- LEGAL_CLAIMS = "legal_claims",// Legal claims/defense
20
- FREEDOM_OF_EXPRESSION = "expression",// Freedom of expression
21
- COMPLIANCE = "compliance",// Regulatory compliance
22
- FINANCIAL_RECORDS = "financial",// Financial record keeping
23
- FRAUD_PREVENTION = "fraud"
24
- }
25
- /**
26
- * Deletion request status
27
- */
28
- export declare enum DeletionStatus {
29
- PENDING = "pending",
30
- REVIEWING = "reviewing",
31
- APPROVED = "approved",
32
- IN_PROGRESS = "in_progress",
33
- COMPLETED = "completed",
34
- PARTIALLY_COMPLETED = "partially_completed",
35
- REJECTED = "rejected",
36
- CANCELLED = "cancelled"
37
- }
38
- /**
39
- * Deletion request
40
- */
41
- export interface DeletionRequest {
42
- id: string;
43
- userId: string;
44
- requestedAt: Date;
45
- requestedBy: string;
46
- scope: DeletionScope;
47
- status: DeletionStatus;
48
- reviewedBy?: string;
49
- reviewedAt?: Date;
50
- completedAt?: Date;
51
- scheduledFor?: Date;
52
- reason?: string;
53
- rejectionReason?: RetentionReason[];
54
- retainedData?: {
55
- category: string;
56
- reason: RetentionReason;
57
- retentionPeriod?: number;
58
- legalBasis: string;
59
- }[];
60
- deletionReport?: DeletionReport;
61
- verificationToken?: string;
62
- metadata?: {
63
- ipAddress: string;
64
- userAgent: string;
65
- verified: boolean;
66
- notificationsSent: string[];
67
- };
68
- }
69
- /**
70
- * Deletion report
71
- */
72
- export interface DeletionReport {
73
- deletedCategories: string[];
74
- deletedRecords: number;
75
- retainedCategories?: string[];
76
- anonymizedRecords?: number;
77
- pseudonymizedRecords?: number;
78
- backupReference?: string;
79
- thirdPartyNotifications?: {
80
- provider: string;
81
- notified: boolean;
82
- response?: string;
83
- }[];
84
- completionCertificate?: string;
85
- }
86
- /**
87
- * Data category for deletion
88
- */
89
- export interface DataCategory {
90
- name: string;
91
- table: string;
92
- userIdColumn: string;
93
- deletable: boolean;
94
- retentionPeriod?: number;
95
- anonymizable: boolean;
96
- criticalData: boolean;
97
- }
98
- /**
99
- * GDPR Right to Erasure Manager
100
- * Implements GDPR Article 17 - Right to be forgotten
101
- */
102
- export declare class RightToErasureManager {
103
- private readonly VERIFICATION_EXPIRY;
104
- private readonly DELETION_DELAY_DAYS;
105
- private readonly MAX_RETRY_ATTEMPTS;
106
- private deletionQueue;
107
- private verificationTokens;
108
- private readonly dataCategories;
109
- /**
110
- * Request account deletion
111
- */
112
- requestDeletion(userId: string, scope?: DeletionScope, options?: {
113
- reason?: string;
114
- immediate?: boolean;
115
- requestedBy?: string;
116
- ipAddress?: string;
117
- userAgent?: string;
118
- skipVerification?: boolean;
119
- }): Promise<DeletionRequest>;
120
- /**
121
- * Verify deletion request
122
- */
123
- verifyDeletion(requestId: string, verificationToken: string): Promise<boolean>;
124
- /**
125
- * Process deletion request
126
- */
127
- processDeletion(request: DeletionRequest): Promise<DeletionReport>;
128
- /**
129
- * Process individual data category
130
- */
131
- private processDataCategory;
132
- /**
133
- * Delete user data from category
134
- */
135
- private deleteData;
136
- /**
137
- * Anonymize user data
138
- */
139
- private anonymizeData;
140
- /**
141
- * Pseudonymize user data
142
- */
143
- private pseudonymizeData;
144
- /**
145
- * Archive user data before deletion
146
- */
147
- private archiveData;
148
- /**
149
- * Partial deletion based on preferences
150
- */
151
- private partialDeleteData;
152
- /**
153
- * Cancel deletion request
154
- */
155
- cancelDeletion(requestId: string, userId: string, reason?: string): Promise<boolean>;
156
- /**
157
- * Check retention requirements
158
- */
159
- private checkRetentionRequirements;
160
- /**
161
- * Notify third-party services
162
- */
163
- private notifyThirdParties;
164
- /**
165
- * Generate completion certificate
166
- */
167
- private generateCompletionCertificate;
168
- private generateRequestId;
169
- private generateVerificationToken;
170
- private getLegalBasis;
171
- private getDeletionRequest;
172
- private getActiveDeletionRequest;
173
- private storeDeletionRequest;
174
- private updateDeletionRequest;
175
- private checkRetentionPeriod;
176
- private checkLegalHold;
177
- private checkFinancialObligations;
178
- private checkFraudInvestigation;
179
- private createBackup;
180
- private sendVerificationEmail;
181
- private sendDeletionConfirmation;
182
- }
183
- export declare const rightToErasureManager: RightToErasureManager;
184
- //# sourceMappingURL=rightToErasure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rightToErasure.d.ts","sourceRoot":"","sources":["../../../../src/server/oauth/gdpr/rightToErasure.ts"],"names":[],"mappings":"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"}