@tantainnovative/ndpr-toolkit 1.0.3 → 1.0.4

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 (156) hide show
  1. package/next-env.d.ts +5 -0
  2. package/package.json +1 -1
  3. package/.claude/settings.local.json +0 -20
  4. package/.eslintrc.json +0 -10
  5. package/.github/workflows/ci.yml +0 -36
  6. package/.github/workflows/nextjs.yml +0 -104
  7. package/.husky/commit-msg +0 -4
  8. package/.husky/pre-commit +0 -4
  9. package/.lintstagedrc.js +0 -4
  10. package/.nvmrc +0 -1
  11. package/.versionrc +0 -17
  12. package/CLAUDE.md +0 -90
  13. package/commitlint.config.js +0 -36
  14. package/eslint.config.mjs +0 -16
  15. package/jest.config.js +0 -31
  16. package/jest.setup.js +0 -15
  17. package/next.config.js +0 -15
  18. package/next.config.ts +0 -62
  19. package/packages/ndpr-toolkit/README.md +0 -467
  20. package/packages/ndpr-toolkit/jest.config.js +0 -23
  21. package/packages/ndpr-toolkit/package-lock.json +0 -8197
  22. package/packages/ndpr-toolkit/package.json +0 -71
  23. package/packages/ndpr-toolkit/rollup.config.js +0 -34
  24. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentBanner.test.tsx +0 -119
  25. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentManager.test.tsx +0 -122
  26. package/packages/ndpr-toolkit/src/__tests__/components/consent/ConsentStorage.test.tsx +0 -270
  27. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRDashboard.test.tsx +0 -199
  28. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRRequestForm.test.tsx +0 -224
  29. package/packages/ndpr-toolkit/src/__tests__/components/dsr/DSRTracker.test.tsx +0 -104
  30. package/packages/ndpr-toolkit/src/__tests__/hooks/useConsent.test.tsx +0 -161
  31. package/packages/ndpr-toolkit/src/__tests__/hooks/useDSR.test.tsx +0 -330
  32. package/packages/ndpr-toolkit/src/__tests__/utils/breach.test.ts +0 -149
  33. package/packages/ndpr-toolkit/src/__tests__/utils/consent.test.ts +0 -88
  34. package/packages/ndpr-toolkit/src/__tests__/utils/dpia.test.ts +0 -160
  35. package/packages/ndpr-toolkit/src/__tests__/utils/dsr.test.ts +0 -110
  36. package/packages/ndpr-toolkit/src/__tests__/utils/privacy.test.ts +0 -97
  37. package/packages/ndpr-toolkit/src/components/breach/BreachNotificationManager.tsx +0 -701
  38. package/packages/ndpr-toolkit/src/components/breach/BreachReportForm.tsx +0 -631
  39. package/packages/ndpr-toolkit/src/components/breach/BreachRiskAssessment.tsx +0 -569
  40. package/packages/ndpr-toolkit/src/components/breach/RegulatoryReportGenerator.tsx +0 -496
  41. package/packages/ndpr-toolkit/src/components/consent/ConsentBanner.tsx +0 -270
  42. package/packages/ndpr-toolkit/src/components/consent/ConsentManager.tsx +0 -217
  43. package/packages/ndpr-toolkit/src/components/consent/ConsentStorage.tsx +0 -206
  44. package/packages/ndpr-toolkit/src/components/dpia/DPIAQuestionnaire.tsx +0 -342
  45. package/packages/ndpr-toolkit/src/components/dpia/DPIAReport.tsx +0 -373
  46. package/packages/ndpr-toolkit/src/components/dpia/StepIndicator.tsx +0 -174
  47. package/packages/ndpr-toolkit/src/components/dsr/DSRDashboard.tsx +0 -717
  48. package/packages/ndpr-toolkit/src/components/dsr/DSRRequestForm.tsx +0 -476
  49. package/packages/ndpr-toolkit/src/components/dsr/DSRTracker.tsx +0 -620
  50. package/packages/ndpr-toolkit/src/components/policy/PolicyExporter.tsx +0 -541
  51. package/packages/ndpr-toolkit/src/components/policy/PolicyGenerator.tsx +0 -454
  52. package/packages/ndpr-toolkit/src/components/policy/PolicyPreview.tsx +0 -333
  53. package/packages/ndpr-toolkit/src/hooks/useBreach.ts +0 -409
  54. package/packages/ndpr-toolkit/src/hooks/useConsent.ts +0 -263
  55. package/packages/ndpr-toolkit/src/hooks/useDPIA.ts +0 -457
  56. package/packages/ndpr-toolkit/src/hooks/useDSR.ts +0 -236
  57. package/packages/ndpr-toolkit/src/hooks/usePrivacyPolicy.ts +0 -428
  58. package/packages/ndpr-toolkit/src/index.ts +0 -44
  59. package/packages/ndpr-toolkit/src/setupTests.ts +0 -5
  60. package/packages/ndpr-toolkit/src/types/breach.ts +0 -283
  61. package/packages/ndpr-toolkit/src/types/consent.ts +0 -111
  62. package/packages/ndpr-toolkit/src/types/dpia.ts +0 -236
  63. package/packages/ndpr-toolkit/src/types/dsr.ts +0 -192
  64. package/packages/ndpr-toolkit/src/types/index.ts +0 -42
  65. package/packages/ndpr-toolkit/src/types/privacy.ts +0 -246
  66. package/packages/ndpr-toolkit/src/utils/breach.ts +0 -122
  67. package/packages/ndpr-toolkit/src/utils/consent.ts +0 -51
  68. package/packages/ndpr-toolkit/src/utils/dpia.ts +0 -104
  69. package/packages/ndpr-toolkit/src/utils/dsr.ts +0 -77
  70. package/packages/ndpr-toolkit/src/utils/privacy.ts +0 -100
  71. package/packages/ndpr-toolkit/tsconfig.json +0 -23
  72. package/postcss.config.mjs +0 -5
  73. package/src/__tests__/example.test.ts +0 -13
  74. package/src/__tests__/requestService.test.ts +0 -57
  75. package/src/app/accessibility.css +0 -70
  76. package/src/app/docs/components/DocLayout.tsx +0 -267
  77. package/src/app/docs/components/breach-notification/page.tsx +0 -797
  78. package/src/app/docs/components/consent-management/page.tsx +0 -576
  79. package/src/app/docs/components/data-subject-rights/page.tsx +0 -511
  80. package/src/app/docs/components/dpia-questionnaire/layout.tsx +0 -15
  81. package/src/app/docs/components/dpia-questionnaire/metadata.ts +0 -31
  82. package/src/app/docs/components/dpia-questionnaire/page.tsx +0 -666
  83. package/src/app/docs/components/hooks/page.tsx +0 -305
  84. package/src/app/docs/components/page.tsx +0 -84
  85. package/src/app/docs/components/privacy-policy-generator/page.tsx +0 -634
  86. package/src/app/docs/guides/breach-notification-process/components/BestPractices.tsx +0 -123
  87. package/src/app/docs/guides/breach-notification-process/components/ImplementationSteps.tsx +0 -328
  88. package/src/app/docs/guides/breach-notification-process/components/Introduction.tsx +0 -28
  89. package/src/app/docs/guides/breach-notification-process/components/NotificationTimeline.tsx +0 -91
  90. package/src/app/docs/guides/breach-notification-process/components/Resources.tsx +0 -118
  91. package/src/app/docs/guides/breach-notification-process/page.tsx +0 -39
  92. package/src/app/docs/guides/conducting-dpia/page.tsx +0 -593
  93. package/src/app/docs/guides/data-subject-requests/page.tsx +0 -666
  94. package/src/app/docs/guides/managing-consent/page.tsx +0 -738
  95. package/src/app/docs/guides/ndpr-compliance-checklist/components/ComplianceChecklist.tsx +0 -296
  96. package/src/app/docs/guides/ndpr-compliance-checklist/components/ImplementationTools.tsx +0 -145
  97. package/src/app/docs/guides/ndpr-compliance-checklist/components/Introduction.tsx +0 -33
  98. package/src/app/docs/guides/ndpr-compliance-checklist/components/KeyRequirements.tsx +0 -99
  99. package/src/app/docs/guides/ndpr-compliance-checklist/components/Resources.tsx +0 -159
  100. package/src/app/docs/guides/ndpr-compliance-checklist/page.tsx +0 -38
  101. package/src/app/docs/guides/page.tsx +0 -67
  102. package/src/app/docs/layout.tsx +0 -15
  103. package/src/app/docs/metadata.ts +0 -31
  104. package/src/app/docs/page.tsx +0 -572
  105. package/src/app/favicon.ico +0 -0
  106. package/src/app/globals.css +0 -123
  107. package/src/app/layout.tsx +0 -37
  108. package/src/app/ndpr-demos/breach/page.tsx +0 -354
  109. package/src/app/ndpr-demos/consent/page.tsx +0 -366
  110. package/src/app/ndpr-demos/dpia/page.tsx +0 -495
  111. package/src/app/ndpr-demos/dsr/page.tsx +0 -280
  112. package/src/app/ndpr-demos/page.tsx +0 -73
  113. package/src/app/ndpr-demos/policy/page.tsx +0 -771
  114. package/src/app/page.tsx +0 -452
  115. package/src/components/ErrorBoundary.tsx +0 -90
  116. package/src/components/breach-notification/BreachNotificationForm.tsx +0 -479
  117. package/src/components/consent/ConsentBanner.tsx +0 -159
  118. package/src/components/data-subject-rights/DataSubjectRequestForm.tsx +0 -419
  119. package/src/components/docs/DocLayout.tsx +0 -289
  120. package/src/components/docs/index.ts +0 -2
  121. package/src/components/dpia/DPIAQuestionnaire.tsx +0 -483
  122. package/src/components/privacy-policy/PolicyGenerator.tsx +0 -1062
  123. package/src/components/privacy-policy/data.ts +0 -98
  124. package/src/components/privacy-policy/shared/CheckboxField.tsx +0 -38
  125. package/src/components/privacy-policy/shared/CheckboxGroup.tsx +0 -85
  126. package/src/components/privacy-policy/shared/FormField.tsx +0 -79
  127. package/src/components/privacy-policy/shared/StepIndicator.tsx +0 -86
  128. package/src/components/privacy-policy/steps/CustomSectionsStep.tsx +0 -335
  129. package/src/components/privacy-policy/steps/DataCollectionStep.tsx +0 -231
  130. package/src/components/privacy-policy/steps/DataSharingStep.tsx +0 -418
  131. package/src/components/privacy-policy/steps/OrganizationInfoStep.tsx +0 -202
  132. package/src/components/privacy-policy/steps/PolicyPreviewStep.tsx +0 -172
  133. package/src/components/ui/Badge.tsx +0 -46
  134. package/src/components/ui/Button.tsx +0 -59
  135. package/src/components/ui/Card.tsx +0 -92
  136. package/src/components/ui/Checkbox.tsx +0 -57
  137. package/src/components/ui/FormField.tsx +0 -50
  138. package/src/components/ui/Input.tsx +0 -38
  139. package/src/components/ui/Loading.tsx +0 -201
  140. package/src/components/ui/Select.tsx +0 -42
  141. package/src/components/ui/TextArea.tsx +0 -38
  142. package/src/components/ui/label.tsx +0 -24
  143. package/src/components/ui/switch.tsx +0 -31
  144. package/src/components/ui/tabs.tsx +0 -66
  145. package/src/hooks/useConsent.ts +0 -64
  146. package/src/hooks/useLoadingState.ts +0 -85
  147. package/src/lib/consentService.ts +0 -137
  148. package/src/lib/dpiaQuestions.ts +0 -148
  149. package/src/lib/requestService.ts +0 -75
  150. package/src/lib/sanitize.ts +0 -108
  151. package/src/lib/storage.ts +0 -222
  152. package/src/lib/utils.ts +0 -6
  153. package/src/types/html-to-docx.d.ts +0 -30
  154. package/src/types/index.ts +0 -72
  155. package/tailwind.config.ts +0 -65
  156. package/tsconfig.json +0 -41
@@ -1,283 +0,0 @@
1
- /**
2
- * Represents a data breach category
3
- */
4
- export interface BreachCategory {
5
- /**
6
- * Unique identifier for the category
7
- */
8
- id: string;
9
-
10
- /**
11
- * Display name for the category
12
- */
13
- name: string;
14
-
15
- /**
16
- * Description of this breach category
17
- */
18
- description: string;
19
-
20
- /**
21
- * Default severity level for this category
22
- */
23
- defaultSeverity: 'low' | 'medium' | 'high' | 'critical';
24
- }
25
-
26
- /**
27
- * Represents a data breach report
28
- */
29
- export interface BreachReport {
30
- /**
31
- * Unique identifier for the breach report
32
- */
33
- id: string;
34
-
35
- /**
36
- * Title/summary of the breach
37
- */
38
- title: string;
39
-
40
- /**
41
- * Detailed description of the breach
42
- */
43
- description: string;
44
-
45
- /**
46
- * Category of the breach
47
- */
48
- category: string;
49
-
50
- /**
51
- * Timestamp when the breach was discovered
52
- */
53
- discoveredAt: number;
54
-
55
- /**
56
- * Timestamp when the breach occurred (if known)
57
- */
58
- occurredAt?: number;
59
-
60
- /**
61
- * Timestamp when the breach was reported internally
62
- */
63
- reportedAt: number;
64
-
65
- /**
66
- * Person who reported the breach
67
- */
68
- reporter: {
69
- name: string;
70
- email: string;
71
- department: string;
72
- phone?: string;
73
- };
74
-
75
- /**
76
- * Systems or data affected by the breach
77
- */
78
- affectedSystems: string[];
79
-
80
- /**
81
- * Types of data involved in the breach
82
- */
83
- dataTypes: string[];
84
-
85
- /**
86
- * Estimated number of data subjects affected
87
- */
88
- estimatedAffectedSubjects?: number;
89
-
90
- /**
91
- * Whether the breach is ongoing or contained
92
- */
93
- status: 'ongoing' | 'contained' | 'resolved';
94
-
95
- /**
96
- * Initial actions taken to address the breach
97
- */
98
- initialActions?: string;
99
-
100
- /**
101
- * Attachments related to the breach (e.g., screenshots, logs)
102
- */
103
- attachments?: Array<{
104
- id: string;
105
- name: string;
106
- type: string;
107
- url: string;
108
- addedAt: number;
109
- }>;
110
- }
111
-
112
- /**
113
- * Represents a risk assessment for a data breach
114
- */
115
- export interface RiskAssessment {
116
- /**
117
- * Unique identifier for the risk assessment
118
- */
119
- id: string;
120
-
121
- /**
122
- * ID of the breach this assessment is for
123
- */
124
- breachId: string;
125
-
126
- /**
127
- * Timestamp when the assessment was conducted
128
- */
129
- assessedAt: number;
130
-
131
- /**
132
- * Person who conducted the assessment
133
- */
134
- assessor: {
135
- name: string;
136
- role: string;
137
- email: string;
138
- };
139
-
140
- /**
141
- * Confidentiality impact (1-5)
142
- */
143
- confidentialityImpact: number;
144
-
145
- /**
146
- * Integrity impact (1-5)
147
- */
148
- integrityImpact: number;
149
-
150
- /**
151
- * Availability impact (1-5)
152
- */
153
- availabilityImpact: number;
154
-
155
- /**
156
- * Likelihood of harm to data subjects (1-5)
157
- */
158
- harmLikelihood: number;
159
-
160
- /**
161
- * Severity of potential harm to data subjects (1-5)
162
- */
163
- harmSeverity: number;
164
-
165
- /**
166
- * Overall risk score
167
- */
168
- overallRiskScore: number;
169
-
170
- /**
171
- * Risk level based on the overall score
172
- */
173
- riskLevel: 'low' | 'medium' | 'high' | 'critical';
174
-
175
- /**
176
- * Whether the breach is likely to result in a risk to the rights and freedoms of data subjects
177
- */
178
- risksToRightsAndFreedoms: boolean;
179
-
180
- /**
181
- * Whether the breach is likely to result in a high risk to the rights and freedoms of data subjects
182
- */
183
- highRisksToRightsAndFreedoms: boolean;
184
-
185
- /**
186
- * Justification for the risk assessment
187
- */
188
- justification: string;
189
- }
190
-
191
- /**
192
- * Represents notification requirements for a data breach
193
- */
194
- export interface NotificationRequirement {
195
- /**
196
- * Whether NITDA notification is required
197
- */
198
- nitdaNotificationRequired: boolean;
199
-
200
- /**
201
- * Deadline for NITDA notification (72 hours from discovery)
202
- */
203
- nitdaNotificationDeadline: number;
204
-
205
- /**
206
- * Whether data subject notification is required
207
- */
208
- dataSubjectNotificationRequired: boolean;
209
-
210
- /**
211
- * Justification for the notification decision
212
- */
213
- justification: string;
214
- }
215
-
216
- /**
217
- * Represents a notification sent to NITDA
218
- */
219
- export interface RegulatoryNotification {
220
- /**
221
- * Unique identifier for the notification
222
- */
223
- id: string;
224
-
225
- /**
226
- * ID of the breach this notification is for
227
- */
228
- breachId: string;
229
-
230
- /**
231
- * Timestamp when the notification was sent
232
- */
233
- sentAt: number;
234
-
235
- /**
236
- * Method used to send the notification
237
- */
238
- method: 'email' | 'portal' | 'letter' | 'other';
239
-
240
- /**
241
- * Reference number assigned by NITDA (if available)
242
- */
243
- referenceNumber?: string;
244
-
245
- /**
246
- * Contact person at NITDA
247
- */
248
- nitdaContact?: {
249
- name: string;
250
- email: string;
251
- phone?: string;
252
- };
253
-
254
- /**
255
- * Content of the notification
256
- */
257
- content: string;
258
-
259
- /**
260
- * Attachments included with the notification
261
- */
262
- attachments?: Array<{
263
- id: string;
264
- name: string;
265
- type: string;
266
- url: string;
267
- }>;
268
-
269
- /**
270
- * Follow-up communications with NITDA
271
- */
272
- followUps?: Array<{
273
- timestamp: number;
274
- direction: 'sent' | 'received';
275
- content: string;
276
- attachments?: Array<{
277
- id: string;
278
- name: string;
279
- type: string;
280
- url: string;
281
- }>;
282
- }>;
283
- }
@@ -1,111 +0,0 @@
1
- /**
2
- * Represents a consent option that can be presented to users
3
- */
4
- export interface ConsentOption {
5
- /**
6
- * Unique identifier for the consent option
7
- */
8
- id: string;
9
-
10
- /**
11
- * Display label for the consent option
12
- */
13
- label: string;
14
-
15
- /**
16
- * Detailed description of what this consent option covers
17
- */
18
- description: string;
19
-
20
- /**
21
- * Whether this consent option is required (cannot be declined)
22
- */
23
- required: boolean;
24
-
25
- /**
26
- * Default state of the consent option
27
- * @default false
28
- */
29
- defaultValue?: boolean;
30
- }
31
-
32
- /**
33
- * Represents the user's consent settings
34
- */
35
- export interface ConsentSettings {
36
- /**
37
- * Map of consent option IDs to boolean values indicating consent status
38
- */
39
- consents: Record<string, boolean>;
40
-
41
- /**
42
- * Timestamp when consent was last updated
43
- */
44
- timestamp: number;
45
-
46
- /**
47
- * Version of the consent form that was accepted
48
- */
49
- version: string;
50
-
51
- /**
52
- * Method used to collect consent (e.g., "banner", "settings", "api")
53
- */
54
- method: string;
55
-
56
- /**
57
- * Whether the user has actively made a choice (as opposed to default settings)
58
- */
59
- hasInteracted: boolean;
60
- }
61
-
62
- /**
63
- * Represents the storage mechanism for consent settings
64
- */
65
- export interface ConsentStorageOptions {
66
- /**
67
- * Storage key for consent settings
68
- * @default "ndpr_consent"
69
- */
70
- storageKey?: string;
71
-
72
- /**
73
- * Storage type to use
74
- * @default "localStorage"
75
- */
76
- storageType?: 'localStorage' | 'sessionStorage' | 'cookie';
77
-
78
- /**
79
- * Cookie options (only used when storageType is "cookie")
80
- */
81
- cookieOptions?: {
82
- /**
83
- * Domain for the cookie
84
- */
85
- domain?: string;
86
-
87
- /**
88
- * Path for the cookie
89
- * @default "/"
90
- */
91
- path?: string;
92
-
93
- /**
94
- * Expiration days for the cookie
95
- * @default 365
96
- */
97
- expires?: number;
98
-
99
- /**
100
- * Whether the cookie should be secure
101
- * @default true
102
- */
103
- secure?: boolean;
104
-
105
- /**
106
- * SameSite attribute for the cookie
107
- * @default "Lax"
108
- */
109
- sameSite?: 'Strict' | 'Lax' | 'None';
110
- };
111
- }
@@ -1,236 +0,0 @@
1
- /**
2
- * Represents a question in the DPIA questionnaire
3
- */
4
- export interface DPIAQuestion {
5
- /**
6
- * Unique identifier for the question
7
- */
8
- id: string;
9
-
10
- /**
11
- * The text of the question
12
- */
13
- text: string;
14
-
15
- /**
16
- * Additional guidance for answering the question
17
- */
18
- guidance?: string;
19
-
20
- /**
21
- * Type of input required for the answer
22
- */
23
- type: 'text' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'scale';
24
-
25
- /**
26
- * Options for select, radio, or checkbox questions
27
- */
28
- options?: Array<{
29
- value: string;
30
- label: string;
31
- riskLevel?: 'low' | 'medium' | 'high';
32
- }>;
33
-
34
- /**
35
- * For scale questions, the minimum value
36
- */
37
- minValue?: number;
38
-
39
- /**
40
- * For scale questions, the maximum value
41
- */
42
- maxValue?: number;
43
-
44
- /**
45
- * For scale questions, labels for the scale points
46
- */
47
- scaleLabels?: Record<number, string>;
48
-
49
- /**
50
- * Whether the question is required
51
- */
52
- required: boolean;
53
-
54
- /**
55
- * Risk level associated with this question
56
- */
57
- riskLevel?: 'low' | 'medium' | 'high';
58
-
59
- /**
60
- * Whether this question triggers additional questions based on the answer
61
- */
62
- hasDependentQuestions?: boolean;
63
-
64
- /**
65
- * Conditions that determine when this question should be shown
66
- */
67
- showWhen?: Array<{
68
- questionId: string;
69
- operator: 'equals' | 'contains' | 'greaterThan' | 'lessThan';
70
- value: any;
71
- }>;
72
- }
73
-
74
- /**
75
- * Represents a section in the DPIA questionnaire
76
- */
77
- export interface DPIASection {
78
- /**
79
- * Unique identifier for the section
80
- */
81
- id: string;
82
-
83
- /**
84
- * Title of the section
85
- */
86
- title: string;
87
-
88
- /**
89
- * Description of the section
90
- */
91
- description?: string;
92
-
93
- /**
94
- * Questions in this section
95
- */
96
- questions: DPIAQuestion[];
97
-
98
- /**
99
- * Order of the section in the questionnaire
100
- */
101
- order: number;
102
- }
103
-
104
- /**
105
- * Represents a risk identified in the DPIA
106
- */
107
- export interface DPIARisk {
108
- /**
109
- * Unique identifier for the risk
110
- */
111
- id: string;
112
-
113
- /**
114
- * Description of the risk
115
- */
116
- description: string;
117
-
118
- /**
119
- * Likelihood of the risk occurring (1-5)
120
- */
121
- likelihood: number;
122
-
123
- /**
124
- * Impact if the risk occurs (1-5)
125
- */
126
- impact: number;
127
-
128
- /**
129
- * Overall risk score (likelihood * impact)
130
- */
131
- score: number;
132
-
133
- /**
134
- * Risk level based on the score
135
- */
136
- level: 'low' | 'medium' | 'high' | 'critical';
137
-
138
- /**
139
- * Measures to mitigate the risk
140
- */
141
- mitigationMeasures?: string[];
142
-
143
- /**
144
- * Whether the risk has been mitigated
145
- */
146
- mitigated: boolean;
147
-
148
- /**
149
- * Residual risk score after mitigation
150
- */
151
- residualScore?: number;
152
-
153
- /**
154
- * Questions that identified this risk
155
- */
156
- relatedQuestionIds: string[];
157
- }
158
-
159
- /**
160
- * Represents the result of a completed DPIA
161
- */
162
- export interface DPIAResult {
163
- /**
164
- * Unique identifier for the DPIA
165
- */
166
- id: string;
167
-
168
- /**
169
- * Title of the DPIA
170
- */
171
- title: string;
172
-
173
- /**
174
- * Description of the processing activity being assessed
175
- */
176
- processingDescription: string;
177
-
178
- /**
179
- * Timestamp when the DPIA was started
180
- */
181
- startedAt: number;
182
-
183
- /**
184
- * Timestamp when the DPIA was completed
185
- */
186
- completedAt?: number;
187
-
188
- /**
189
- * Person responsible for conducting the DPIA
190
- */
191
- assessor: {
192
- name: string;
193
- role: string;
194
- email: string;
195
- };
196
-
197
- /**
198
- * Answers to all questions in the DPIA
199
- */
200
- answers: Record<string, any>;
201
-
202
- /**
203
- * Risks identified in the DPIA
204
- */
205
- risks: DPIARisk[];
206
-
207
- /**
208
- * Overall risk level of the processing activity
209
- */
210
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
211
-
212
- /**
213
- * Whether the DPIA concluded that the processing can proceed
214
- */
215
- canProceed: boolean;
216
-
217
- /**
218
- * Reasons why the processing can or cannot proceed
219
- */
220
- conclusion: string;
221
-
222
- /**
223
- * Recommendations for the processing activity
224
- */
225
- recommendations?: string[];
226
-
227
- /**
228
- * Next review date for the DPIA
229
- */
230
- reviewDate?: number;
231
-
232
- /**
233
- * Version of the DPIA questionnaire used
234
- */
235
- version: string;
236
- }