@tantainnovative/ndpr-toolkit 3.4.1 → 3.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.
Files changed (177) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/adapters.d.mts +34 -25
  3. package/dist/adapters.d.ts +34 -25
  4. package/dist/breach.d.mts +803 -44
  5. package/dist/breach.d.ts +803 -44
  6. package/dist/breach.js +1 -1
  7. package/dist/breach.mjs +1 -1
  8. package/dist/{chunk-ASLMPY54.js → chunk-3EGQWLJ6.js} +3 -3
  9. package/dist/chunk-B4Z5MBUC.mjs +2 -0
  10. package/dist/{chunk-LSCMXAPY.mjs → chunk-CKGJK4D7.mjs} +3 -3
  11. package/dist/{chunk-XSEZDQLB.js → chunk-CKJAECGV.js} +2 -2
  12. package/dist/{chunk-AHSMDPG5.js → chunk-CPK5D5FY.js} +2 -2
  13. package/dist/{chunk-DCJK5OZT.mjs → chunk-CWHBCQGT.mjs} +2 -2
  14. package/dist/{chunk-MLOWRZXO.mjs → chunk-F5TXUA4O.mjs} +3 -3
  15. package/dist/{chunk-BN77GP4W.mjs → chunk-GN5C32JB.mjs} +2 -2
  16. package/dist/{chunk-ZLSWOFAY.mjs → chunk-GRLIPT5V.mjs} +2 -2
  17. package/dist/{chunk-DUY6F3GT.mjs → chunk-H3EYBSVP.mjs} +3 -3
  18. package/dist/{chunk-NFJ4CB63.mjs → chunk-ID2NYIVE.mjs} +3 -3
  19. package/dist/chunk-J5WCPZLW.js +2 -0
  20. package/dist/{chunk-P2YV6DR3.js → chunk-LIM64IV2.js} +3 -3
  21. package/dist/chunk-LU7PKE7Y.mjs +2 -0
  22. package/dist/{chunk-HQSU7LGM.js → chunk-LWXZMKC2.js} +4 -4
  23. package/dist/{chunk-4BOEFDDE.js → chunk-ORFC66EA.js} +3 -3
  24. package/dist/{chunk-VTITKWGX.mjs → chunk-QSVVAZVT.mjs} +2 -2
  25. package/dist/chunk-SCWNM4PC.mjs +2 -0
  26. package/dist/{chunk-EHAZIKDX.js → chunk-SKKOMFXH.js} +2 -2
  27. package/dist/{chunk-WH6ZMUOS.mjs → chunk-TUNQUVHU.mjs} +2 -2
  28. package/dist/chunk-TV4U6AIS.js +2 -0
  29. package/dist/{chunk-ZYLDLGFL.js → chunk-VIQUXWJC.js} +2 -2
  30. package/dist/{chunk-SUEGUY35.js → chunk-XIM7KMD6.js} +2 -2
  31. package/dist/{chunk-P6QAFBCV.js → chunk-XNSZ7KUH.js} +2 -2
  32. package/dist/consent.d.mts +648 -84
  33. package/dist/consent.d.ts +648 -84
  34. package/dist/consent.js +1 -1
  35. package/dist/consent.mjs +1 -1
  36. package/dist/core.d.mts +2049 -23
  37. package/dist/core.d.ts +2049 -23
  38. package/dist/core.js +1 -1
  39. package/dist/core.mjs +1 -1
  40. package/dist/cross-border.d.mts +470 -99
  41. package/dist/cross-border.d.ts +470 -99
  42. package/dist/dpia.d.mts +591 -37
  43. package/dist/dpia.d.ts +591 -37
  44. package/dist/dsr.d.mts +654 -37
  45. package/dist/dsr.d.ts +654 -37
  46. package/dist/dsr.js +1 -1
  47. package/dist/dsr.mjs +1 -1
  48. package/dist/hooks.d.mts +2174 -30
  49. package/dist/hooks.d.ts +2174 -30
  50. package/dist/hooks.js +1 -1
  51. package/dist/hooks.mjs +1 -1
  52. package/dist/index.d.mts +4428 -43
  53. package/dist/index.d.ts +4428 -43
  54. package/dist/index.js +1 -1
  55. package/dist/index.mjs +1 -1
  56. package/dist/lawful-basis.d.mts +368 -32
  57. package/dist/lawful-basis.d.ts +368 -32
  58. package/dist/policy.d.mts +1178 -83
  59. package/dist/policy.d.ts +1178 -83
  60. package/dist/policy.js +1 -1
  61. package/dist/policy.mjs +1 -1
  62. package/dist/presets.d.mts +1020 -114
  63. package/dist/presets.d.ts +1020 -114
  64. package/dist/presets.js +1 -1
  65. package/dist/presets.mjs +1 -1
  66. package/dist/ropa.d.mts +396 -31
  67. package/dist/ropa.d.ts +396 -31
  68. package/dist/ropa.js +1 -1
  69. package/dist/ropa.mjs +1 -1
  70. package/dist/server.d.mts +2133 -24
  71. package/dist/server.d.ts +2133 -24
  72. package/dist/server.js +1 -1
  73. package/dist/server.mjs +1 -1
  74. package/dist/unstyled.d.mts +523 -55
  75. package/dist/unstyled.d.ts +523 -55
  76. package/dist/unstyled.js +1 -1
  77. package/dist/unstyled.mjs +1 -1
  78. package/package.json +3 -3
  79. package/dist/BreachReportForm-DpRrBoxU.d.ts +0 -158
  80. package/dist/BreachReportForm-yJ2Zl6gz.d.mts +0 -158
  81. package/dist/ConsentBanner-F5ayys5K.d.mts +0 -156
  82. package/dist/ConsentBanner-VqIPophc.d.ts +0 -156
  83. package/dist/ConsentManager-C7I3PDe8.d.mts +0 -105
  84. package/dist/ConsentManager-CQ2IZtUU.d.ts +0 -105
  85. package/dist/CrossBorderTransferManager-D5Lc0e46.d.ts +0 -90
  86. package/dist/CrossBorderTransferManager-DkZhv9vD.d.mts +0 -90
  87. package/dist/DPIAQuestionnaire-VXBoWFMC.d.ts +0 -123
  88. package/dist/DPIAQuestionnaire-jkt1Veb6.d.mts +0 -123
  89. package/dist/DSRRequestForm-D8rPTNmU.d.ts +0 -146
  90. package/dist/DSRRequestForm-DRouEr9j.d.mts +0 -146
  91. package/dist/DSRTracker-Bl__d4df.d.ts +0 -163
  92. package/dist/DSRTracker-CSVDfgQQ.d.mts +0 -163
  93. package/dist/LawfulBasisTracker-CBqOxX1D.d.mts +0 -85
  94. package/dist/LawfulBasisTracker-Cg30NbDA.d.ts +0 -85
  95. package/dist/NDPRDashboard-CLJpEg0X.d.mts +0 -44
  96. package/dist/NDPRDashboard-DDWNd2Ah.d.ts +0 -44
  97. package/dist/NDPRProvider-DYFb8xEl.d.ts +0 -68
  98. package/dist/NDPRProvider-U3QNu6MA.d.mts +0 -68
  99. package/dist/PolicyExporter-Bgi6nz82.d.mts +0 -291
  100. package/dist/PolicyExporter-BnvuFncj.d.ts +0 -291
  101. package/dist/ROPAManager-BS4eB8Hw.d.mts +0 -79
  102. package/dist/ROPAManager-qxTrXLkD.d.ts +0 -79
  103. package/dist/RegulatoryReportGenerator-BUYgzTTT.d.ts +0 -282
  104. package/dist/RegulatoryReportGenerator-DwcHcEFp.d.mts +0 -282
  105. package/dist/StepIndicator-CgrlokSV.d.ts +0 -171
  106. package/dist/StepIndicator-W8S_QjgO.d.mts +0 -171
  107. package/dist/breach-B_-6lDqS.d.mts +0 -17
  108. package/dist/breach-CzXqSsaY.d.ts +0 -17
  109. package/dist/breach-Eu9byel8.d.mts +0 -185
  110. package/dist/breach-Eu9byel8.d.ts +0 -185
  111. package/dist/chunk-2L7BSG7G.mjs +0 -2
  112. package/dist/chunk-5X32J5IA.mjs +0 -2
  113. package/dist/chunk-7D2OIPHH.mjs +0 -2
  114. package/dist/chunk-JKKRPS4P.js +0 -2
  115. package/dist/chunk-UHTJ6UFW.js +0 -2
  116. package/dist/compliance-score-racQe_E_.d.mts +0 -115
  117. package/dist/compliance-score-racQe_E_.d.ts +0 -115
  118. package/dist/consent-CmVzqZUk.d.mts +0 -99
  119. package/dist/consent-CmVzqZUk.d.ts +0 -99
  120. package/dist/consent-audit-BdByjYlM.d.mts +0 -65
  121. package/dist/consent-audit-DhbfMR0n.d.ts +0 -65
  122. package/dist/cross-border-BBi9rZyO.d.mts +0 -54
  123. package/dist/cross-border-Dy-U9Hu6.d.ts +0 -54
  124. package/dist/cross-border-UyT00llA.d.mts +0 -141
  125. package/dist/cross-border-UyT00llA.d.ts +0 -141
  126. package/dist/docx-4n8g4zul.d.mts +0 -64
  127. package/dist/docx-VvcTLYZM.d.ts +0 -64
  128. package/dist/dpia-D82hUrJe.d.ts +0 -15
  129. package/dist/dpia-DQDFw2_l.d.mts +0 -15
  130. package/dist/dpia-c9GiiOq0.d.mts +0 -137
  131. package/dist/dpia-c9GiiOq0.d.ts +0 -137
  132. package/dist/dsr-CIx5sd7e.d.ts +0 -14
  133. package/dist/dsr-XZ_HqTlA.d.mts +0 -14
  134. package/dist/dsr-yKbqX531.d.mts +0 -128
  135. package/dist/dsr-yKbqX531.d.ts +0 -128
  136. package/dist/lawful-basis-BEyI0kGg.d.ts +0 -57
  137. package/dist/lawful-basis-C2eGaoHM.d.mts +0 -57
  138. package/dist/lawful-basis-Cv1VmDLn.d.mts +0 -112
  139. package/dist/lawful-basis-Cv1VmDLn.d.ts +0 -112
  140. package/dist/locale-CxJx2tzn.d.mts +0 -25
  141. package/dist/locale-DSkrtf-c.d.ts +0 -25
  142. package/dist/policy-engine-5qTfp2z4.d.mts +0 -174
  143. package/dist/policy-engine-DzPxskOK.d.ts +0 -174
  144. package/dist/policy-sections-9tCb7VU7.d.ts +0 -56
  145. package/dist/policy-sections-CBWcJv-R.d.mts +0 -56
  146. package/dist/policy-templates-DhLwq4R-.d.ts +0 -43
  147. package/dist/policy-templates-DwYl2329.d.mts +0 -43
  148. package/dist/privacy-Ca6te9Ir.d.mts +0 -138
  149. package/dist/privacy-Ca6te9Ir.d.ts +0 -138
  150. package/dist/ropa-BDTM06tr.d.ts +0 -152
  151. package/dist/ropa-CFHuT7jE.d.mts +0 -152
  152. package/dist/ropa-CyynscU6.d.ts +0 -51
  153. package/dist/ropa-NIgxd8uP.d.mts +0 -51
  154. package/dist/sanitize-CxxwKxAx.d.mts +0 -94
  155. package/dist/sanitize-CxxwKxAx.d.ts +0 -94
  156. package/dist/styling-BMDGQDgS.d.mts +0 -64
  157. package/dist/styling-BaoQtV06.d.ts +0 -64
  158. package/dist/types-DK2CoKOC.d.mts +0 -10
  159. package/dist/types-DK2CoKOC.d.ts +0 -10
  160. package/dist/useAdaptivePolicyWizard-BSLyltzZ.d.mts +0 -52
  161. package/dist/useAdaptivePolicyWizard-CL7C7MTZ.d.ts +0 -52
  162. package/dist/useBreach-CPr86Yan.d.mts +0 -115
  163. package/dist/useBreach-DkVXvtJK.d.ts +0 -115
  164. package/dist/useConsent-DCNkIJHR.d.mts +0 -75
  165. package/dist/useConsent-dOcELSfX.d.ts +0 -75
  166. package/dist/useCrossBorderTransfer-DixjLjN1.d.mts +0 -78
  167. package/dist/useCrossBorderTransfer-DvSq06lv.d.ts +0 -78
  168. package/dist/useDPIA-B6180UQn.d.mts +0 -109
  169. package/dist/useDPIA-CTqbNbww.d.ts +0 -109
  170. package/dist/useDSR-WvHk8_iu.d.mts +0 -85
  171. package/dist/useDSR-wH4H6hSM.d.ts +0 -85
  172. package/dist/useDefaultPrivacyPolicy-Cs2WQSYQ.d.mts +0 -162
  173. package/dist/useDefaultPrivacyPolicy-DkOqMg2e.d.ts +0 -162
  174. package/dist/useLawfulBasis-CKJ-kw84.d.mts +0 -79
  175. package/dist/useLawfulBasis-DFTmu1ca.d.ts +0 -79
  176. package/dist/useROPA-BSSU1rfx.d.ts +0 -76
  177. package/dist/useROPA-C2hjaBTz.d.mts +0 -76
@@ -1,64 +0,0 @@
1
- import { c as PrivacyPolicy } from './privacy-Ca6te9Ir.js';
2
- import { H as HTMLExportOptions, g as PDFExportOptions, f as DOCXExportOptions } from './policy-engine-DzPxskOK.js';
3
-
4
- /**
5
- * Export a PrivacyPolicy as a self-contained HTML string.
6
- *
7
- * The returned string includes:
8
- * - An embedded `<style>` block (responsive, dark/light, print-friendly)
9
- * - An `<article>` wrapper with semantic markup
10
- * - A `<nav>` table of contents with anchor links
11
- * - A `<section>` for every included policy section
12
- * - A metadata footer (org name, effective date, version, generator credit)
13
- * - Optional custom CSS injection via `options.customCSS`
14
- */
15
- declare function exportHTML(policy: PrivacyPolicy, options?: HTMLExportOptions): string;
16
-
17
- /**
18
- * Export a PrivacyPolicy as a clean Markdown string.
19
- *
20
- * Structure:
21
- * ```
22
- * # Policy Title
23
- * _Effective: date | Version: X | Org Name_
24
- *
25
- * ## Table of Contents
26
- * - [Section Title](#anchor)
27
- *
28
- * ## 1. Section Title
29
- * Section content...
30
- * ```
31
- */
32
- declare function exportMarkdown(policy: PrivacyPolicy): string;
33
-
34
- /**
35
- * Export a PrivacyPolicy to a PDF Blob using jspdf (optional peer dependency).
36
- *
37
- * Features:
38
- * - Optional cover page with title, organisation, date, version and compliance badge
39
- * - Optional table of contents page
40
- * - One section per heading, content reflowed to fit the page
41
- * - Automatic page breaks
42
- * - Page header (org name) and footer (page X of Y) on every page
43
- * - PDF metadata (title, author, subject, keywords)
44
- *
45
- * @throws {Error} if the `jspdf` package is not installed
46
- */
47
- declare function exportPDF(policy: PrivacyPolicy, options?: PDFExportOptions): Promise<Blob>;
48
-
49
- /**
50
- * Export a PrivacyPolicy as a Word (.docx) Blob using the `docx` library
51
- * (optional peer dependency).
52
- *
53
- * Features:
54
- * - Title paragraph with large bold text
55
- * - Organisation name + version subtitle
56
- * - Optional table of contents placeholder heading
57
- * - All included policy sections as Heading 1 + body paragraphs / bullet lists
58
- * - Running header (org name) and page-number footer on every page
59
- *
60
- * @throws {Error} if the `docx` package is not installed
61
- */
62
- declare function exportDOCX(policy: PrivacyPolicy, options?: DOCXExportOptions): Promise<Blob>;
63
-
64
- export { exportHTML as a, exportMarkdown as b, exportPDF as c, exportDOCX as e };
@@ -1,15 +0,0 @@
1
- import { a as DPIAResult } from './dpia-c9GiiOq0.js';
2
-
3
- /**
4
- * Assesses the risk level of a DPIA based on the identified risks
5
- * @param dpiaResult The DPIA result containing risks to assess
6
- * @returns Assessment result with overall risk level and recommendations
7
- */
8
- declare function assessDPIARisk(dpiaResult: DPIAResult): {
9
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
10
- requiresConsultation: boolean;
11
- canProceed: boolean;
12
- recommendations: string[];
13
- };
14
-
15
- export { assessDPIARisk as a };
@@ -1,15 +0,0 @@
1
- import { a as DPIAResult } from './dpia-c9GiiOq0.mjs';
2
-
3
- /**
4
- * Assesses the risk level of a DPIA based on the identified risks
5
- * @param dpiaResult The DPIA result containing risks to assess
6
- * @returns Assessment result with overall risk level and recommendations
7
- */
8
- declare function assessDPIARisk(dpiaResult: DPIAResult): {
9
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
10
- requiresConsultation: boolean;
11
- canProceed: boolean;
12
- recommendations: string[];
13
- };
14
-
15
- export { assessDPIARisk as a };
@@ -1,137 +0,0 @@
1
- /**
2
- * Data Protection Impact Assessment types aligned with NDPA 2023 Sections 38-39
3
- * A DPIA is required when processing is likely to result in high risk to data subjects
4
- */
5
- /**
6
- * Represents a question in the DPIA questionnaire
7
- */
8
- interface DPIAQuestion {
9
- /** Unique identifier for the question */
10
- id: string;
11
- /** The text of the question */
12
- text: string;
13
- /** Additional guidance for answering the question */
14
- guidance?: string;
15
- /** Type of input required for the answer */
16
- type: 'text' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'scale';
17
- /** Options for select, radio, or checkbox questions */
18
- options?: Array<{
19
- value: string;
20
- label: string;
21
- riskLevel?: 'low' | 'medium' | 'high';
22
- }>;
23
- /** For scale questions, the minimum value */
24
- minValue?: number;
25
- /** For scale questions, the maximum value */
26
- maxValue?: number;
27
- /** For scale questions, labels for the scale points */
28
- scaleLabels?: Record<number, string>;
29
- /** Whether the question is required */
30
- required: boolean;
31
- /** Risk level associated with this question */
32
- riskLevel?: 'low' | 'medium' | 'high';
33
- /** Whether this question triggers additional questions based on the answer */
34
- hasDependentQuestions?: boolean;
35
- /** Conditions that determine when this question should be shown */
36
- showWhen?: Array<{
37
- questionId: string;
38
- operator: 'equals' | 'contains' | 'greaterThan' | 'lessThan';
39
- value: string | number | boolean;
40
- }>;
41
- }
42
- /**
43
- * Represents a section in the DPIA questionnaire
44
- */
45
- interface DPIASection {
46
- /** Unique identifier for the section */
47
- id: string;
48
- /** Title of the section */
49
- title: string;
50
- /** Description of the section */
51
- description?: string;
52
- /** Questions in this section */
53
- questions: DPIAQuestion[];
54
- /** Order of the section in the questionnaire */
55
- order: number;
56
- }
57
- /**
58
- * Represents a risk identified in the DPIA
59
- */
60
- interface DPIARisk {
61
- /** Unique identifier for the risk */
62
- id: string;
63
- /** Description of the risk */
64
- description: string;
65
- /** Likelihood of the risk occurring (1-5) */
66
- likelihood: number;
67
- /** Impact if the risk occurs (1-5) */
68
- impact: number;
69
- /** Overall risk score (likelihood * impact) */
70
- score: number;
71
- /** Risk level based on the score */
72
- level: 'low' | 'medium' | 'high' | 'critical';
73
- /** Measures to mitigate the risk */
74
- mitigationMeasures?: string[];
75
- /** Whether the risk has been mitigated */
76
- mitigated: boolean;
77
- /** Residual risk score after mitigation */
78
- residualScore?: number;
79
- /** Questions that identified this risk */
80
- relatedQuestionIds: string[];
81
- }
82
- /**
83
- * Represents the result of a completed DPIA
84
- */
85
- interface DPIAResult {
86
- /** Unique identifier for the DPIA */
87
- id: string;
88
- /** Title of the DPIA */
89
- title: string;
90
- /** Description of the processing activity being assessed */
91
- processingDescription: string;
92
- /** Timestamp when the DPIA was started */
93
- startedAt: number;
94
- /** Timestamp when the DPIA was completed */
95
- completedAt?: number;
96
- /** Person responsible for conducting the DPIA */
97
- assessor: {
98
- name: string;
99
- role: string;
100
- email: string;
101
- };
102
- /** Answers to all questions in the DPIA */
103
- answers: Record<string, string | number | boolean | string[]>;
104
- /** Risks identified in the DPIA */
105
- risks: DPIARisk[];
106
- /** Overall risk level of the processing activity */
107
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
108
- /** Whether the DPIA concluded that the processing can proceed */
109
- canProceed: boolean;
110
- /** Reasons why the processing can or cannot proceed */
111
- conclusion: string;
112
- /** Recommendations for the processing activity */
113
- recommendations?: string[];
114
- /** Next review date for the DPIA */
115
- reviewDate?: number;
116
- /** Version of the DPIA questionnaire used */
117
- version: string;
118
- /**
119
- * Whether prior consultation with NDPC is required
120
- * Per NDPA Section 39, consultation is required when DPIA indicates high residual risk
121
- */
122
- ndpcConsultationRequired?: boolean;
123
- /** Date when NDPC consultation was initiated */
124
- ndpcConsultationDate?: number;
125
- /** Reference number from NDPC consultation */
126
- ndpcConsultationReference?: string;
127
- /**
128
- * The lawful basis for the processing activity being assessed
129
- */
130
- lawfulBasis?: string;
131
- /**
132
- * Whether this DPIA involves cross-border data transfers
133
- */
134
- involvesCrossBorderTransfer?: boolean;
135
- }
136
-
137
- export type { DPIAQuestion as D, DPIAResult as a, DPIARisk as b, DPIASection as c };
@@ -1,137 +0,0 @@
1
- /**
2
- * Data Protection Impact Assessment types aligned with NDPA 2023 Sections 38-39
3
- * A DPIA is required when processing is likely to result in high risk to data subjects
4
- */
5
- /**
6
- * Represents a question in the DPIA questionnaire
7
- */
8
- interface DPIAQuestion {
9
- /** Unique identifier for the question */
10
- id: string;
11
- /** The text of the question */
12
- text: string;
13
- /** Additional guidance for answering the question */
14
- guidance?: string;
15
- /** Type of input required for the answer */
16
- type: 'text' | 'textarea' | 'select' | 'radio' | 'checkbox' | 'scale';
17
- /** Options for select, radio, or checkbox questions */
18
- options?: Array<{
19
- value: string;
20
- label: string;
21
- riskLevel?: 'low' | 'medium' | 'high';
22
- }>;
23
- /** For scale questions, the minimum value */
24
- minValue?: number;
25
- /** For scale questions, the maximum value */
26
- maxValue?: number;
27
- /** For scale questions, labels for the scale points */
28
- scaleLabels?: Record<number, string>;
29
- /** Whether the question is required */
30
- required: boolean;
31
- /** Risk level associated with this question */
32
- riskLevel?: 'low' | 'medium' | 'high';
33
- /** Whether this question triggers additional questions based on the answer */
34
- hasDependentQuestions?: boolean;
35
- /** Conditions that determine when this question should be shown */
36
- showWhen?: Array<{
37
- questionId: string;
38
- operator: 'equals' | 'contains' | 'greaterThan' | 'lessThan';
39
- value: string | number | boolean;
40
- }>;
41
- }
42
- /**
43
- * Represents a section in the DPIA questionnaire
44
- */
45
- interface DPIASection {
46
- /** Unique identifier for the section */
47
- id: string;
48
- /** Title of the section */
49
- title: string;
50
- /** Description of the section */
51
- description?: string;
52
- /** Questions in this section */
53
- questions: DPIAQuestion[];
54
- /** Order of the section in the questionnaire */
55
- order: number;
56
- }
57
- /**
58
- * Represents a risk identified in the DPIA
59
- */
60
- interface DPIARisk {
61
- /** Unique identifier for the risk */
62
- id: string;
63
- /** Description of the risk */
64
- description: string;
65
- /** Likelihood of the risk occurring (1-5) */
66
- likelihood: number;
67
- /** Impact if the risk occurs (1-5) */
68
- impact: number;
69
- /** Overall risk score (likelihood * impact) */
70
- score: number;
71
- /** Risk level based on the score */
72
- level: 'low' | 'medium' | 'high' | 'critical';
73
- /** Measures to mitigate the risk */
74
- mitigationMeasures?: string[];
75
- /** Whether the risk has been mitigated */
76
- mitigated: boolean;
77
- /** Residual risk score after mitigation */
78
- residualScore?: number;
79
- /** Questions that identified this risk */
80
- relatedQuestionIds: string[];
81
- }
82
- /**
83
- * Represents the result of a completed DPIA
84
- */
85
- interface DPIAResult {
86
- /** Unique identifier for the DPIA */
87
- id: string;
88
- /** Title of the DPIA */
89
- title: string;
90
- /** Description of the processing activity being assessed */
91
- processingDescription: string;
92
- /** Timestamp when the DPIA was started */
93
- startedAt: number;
94
- /** Timestamp when the DPIA was completed */
95
- completedAt?: number;
96
- /** Person responsible for conducting the DPIA */
97
- assessor: {
98
- name: string;
99
- role: string;
100
- email: string;
101
- };
102
- /** Answers to all questions in the DPIA */
103
- answers: Record<string, string | number | boolean | string[]>;
104
- /** Risks identified in the DPIA */
105
- risks: DPIARisk[];
106
- /** Overall risk level of the processing activity */
107
- overallRiskLevel: 'low' | 'medium' | 'high' | 'critical';
108
- /** Whether the DPIA concluded that the processing can proceed */
109
- canProceed: boolean;
110
- /** Reasons why the processing can or cannot proceed */
111
- conclusion: string;
112
- /** Recommendations for the processing activity */
113
- recommendations?: string[];
114
- /** Next review date for the DPIA */
115
- reviewDate?: number;
116
- /** Version of the DPIA questionnaire used */
117
- version: string;
118
- /**
119
- * Whether prior consultation with NDPC is required
120
- * Per NDPA Section 39, consultation is required when DPIA indicates high residual risk
121
- */
122
- ndpcConsultationRequired?: boolean;
123
- /** Date when NDPC consultation was initiated */
124
- ndpcConsultationDate?: number;
125
- /** Reference number from NDPC consultation */
126
- ndpcConsultationReference?: string;
127
- /**
128
- * The lawful basis for the processing activity being assessed
129
- */
130
- lawfulBasis?: string;
131
- /**
132
- * Whether this DPIA involves cross-border data transfers
133
- */
134
- involvesCrossBorderTransfer?: boolean;
135
- }
136
-
137
- export type { DPIAQuestion as D, DPIAResult as a, DPIARisk as b, DPIASection as c };
@@ -1,14 +0,0 @@
1
- import { D as DSRRequest } from './dsr-yKbqX531.js';
2
-
3
- /**
4
- * Formats a DSR request for display or submission
5
- * @param request The DSR request to format
6
- * @returns Formatted request data
7
- */
8
- declare function formatDSRRequest(request: DSRRequest): {
9
- formattedRequest: Record<string, unknown>;
10
- isValid: boolean;
11
- validationErrors: string[];
12
- };
13
-
14
- export { formatDSRRequest as f };
@@ -1,14 +0,0 @@
1
- import { D as DSRRequest } from './dsr-yKbqX531.mjs';
2
-
3
- /**
4
- * Formats a DSR request for display or submission
5
- * @param request The DSR request to format
6
- * @returns Formatted request data
7
- */
8
- declare function formatDSRRequest(request: DSRRequest): {
9
- formattedRequest: Record<string, unknown>;
10
- isValid: boolean;
11
- validationErrors: string[];
12
- };
13
-
14
- export { formatDSRRequest as f };
@@ -1,128 +0,0 @@
1
- /**
2
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
3
- */
4
- /**
5
- * Types of data subject requests per NDPA Part IV
6
- * - 'information': Right to be informed (Section 29)
7
- * - 'access': Right of access (Section 30)
8
- * - 'rectification': Right to rectification (Section 31)
9
- * - 'erasure': Right to erasure (Section 32)
10
- * - 'restriction': Right to restrict processing (Section 33)
11
- * - 'portability': Right to data portability (Section 34)
12
- * - 'objection': Right to object (Section 35)
13
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
14
- */
15
- type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
16
- /**
17
- * Status of a data subject request
18
- */
19
- type DSRStatus = 'pending' | 'awaitingVerification' | 'inProgress' | 'completed' | 'rejected';
20
- /**
21
- * Represents a type of data subject request (detailed configuration)
22
- */
23
- interface RequestType {
24
- /** Unique identifier for the request type */
25
- id: string;
26
- /** Display name for the request type */
27
- name: string;
28
- /** Description of what this request type entails */
29
- description: string;
30
- /**
31
- * NDPA section reference (e.g., "Section 30" for access requests)
32
- */
33
- ndpaSection?: string;
34
- /**
35
- * Estimated time to fulfill this type of request (in days)
36
- * NDPA requires response within 30 days
37
- */
38
- estimatedCompletionTime: number;
39
- /** Whether additional information is required for this request type */
40
- requiresAdditionalInfo: boolean;
41
- /** Custom fields required for this request type */
42
- additionalFields?: Array<{
43
- id: string;
44
- label: string;
45
- type: 'text' | 'textarea' | 'select' | 'checkbox' | 'file';
46
- options?: string[];
47
- required: boolean;
48
- placeholder?: string;
49
- }>;
50
- }
51
- /**
52
- * Legacy status of a data subject request
53
- * @deprecated Use DSRStatus instead
54
- */
55
- type RequestStatus = 'pending' | 'verifying' | 'processing' | 'completed' | 'rejected';
56
- /**
57
- * Represents a data subject request
58
- */
59
- interface DSRRequest {
60
- /** Unique identifier for the request */
61
- id: string;
62
- /** Type of request */
63
- type: DSRType;
64
- /** Current status of the request */
65
- status: DSRStatus;
66
- /** Timestamp when the request was submitted */
67
- createdAt: number;
68
- /** Timestamp when the request was last updated */
69
- updatedAt: number;
70
- /** Timestamp when the request was completed (if applicable) */
71
- completedAt?: number;
72
- /** Timestamp when the identity was verified (if applicable) */
73
- verifiedAt?: number;
74
- /**
75
- * Due date for responding to the request (timestamp)
76
- * NDPA requires response within 30 days of receipt
77
- */
78
- dueDate?: number;
79
- /** Description or details of the request */
80
- description?: string;
81
- /**
82
- * The lawful basis under which the data was originally processed
83
- * Relevant for evaluating objection and erasure requests
84
- */
85
- lawfulBasis?: string;
86
- /** Data subject information */
87
- subject: {
88
- name: string;
89
- email: string;
90
- phone?: string;
91
- identifierValue?: string;
92
- identifierType?: string;
93
- };
94
- /** Additional information provided by the data subject */
95
- additionalInfo?: Record<string, string | number | boolean | null>;
96
- /** Notes added by staff processing the request */
97
- internalNotes?: Array<{
98
- timestamp: number;
99
- author: string;
100
- note: string;
101
- }>;
102
- /** Verification status */
103
- verification?: {
104
- verified: boolean;
105
- method?: string;
106
- verifiedAt?: number;
107
- verifiedBy?: string;
108
- };
109
- /** Reason for rejection (if status is 'rejected') */
110
- rejectionReason?: string;
111
- /** Files attached to the request */
112
- attachments?: Array<{
113
- id: string;
114
- name: string;
115
- type: string;
116
- url: string;
117
- addedAt: number;
118
- }>;
119
- /**
120
- * Whether an extension was requested for this DSR
121
- * NDPA allows a one-time extension of 30 days with justification
122
- */
123
- extensionRequested?: boolean;
124
- /** Reason for the extension, if requested */
125
- extensionReason?: string;
126
- }
127
-
128
- export type { DSRRequest as D, RequestStatus as R, DSRStatus as a, DSRType as b, RequestType as c };
@@ -1,128 +0,0 @@
1
- /**
2
- * Data Subject Rights types aligned with NDPA 2023 Part IV (Sections 29-36)
3
- */
4
- /**
5
- * Types of data subject requests per NDPA Part IV
6
- * - 'information': Right to be informed (Section 29)
7
- * - 'access': Right of access (Section 30)
8
- * - 'rectification': Right to rectification (Section 31)
9
- * - 'erasure': Right to erasure (Section 32)
10
- * - 'restriction': Right to restrict processing (Section 33)
11
- * - 'portability': Right to data portability (Section 34)
12
- * - 'objection': Right to object (Section 35)
13
- * - 'automated_decision_making': Rights related to automated decision-making (Section 36)
14
- */
15
- type DSRType = 'information' | 'access' | 'rectification' | 'erasure' | 'restriction' | 'portability' | 'objection' | 'automated_decision_making';
16
- /**
17
- * Status of a data subject request
18
- */
19
- type DSRStatus = 'pending' | 'awaitingVerification' | 'inProgress' | 'completed' | 'rejected';
20
- /**
21
- * Represents a type of data subject request (detailed configuration)
22
- */
23
- interface RequestType {
24
- /** Unique identifier for the request type */
25
- id: string;
26
- /** Display name for the request type */
27
- name: string;
28
- /** Description of what this request type entails */
29
- description: string;
30
- /**
31
- * NDPA section reference (e.g., "Section 30" for access requests)
32
- */
33
- ndpaSection?: string;
34
- /**
35
- * Estimated time to fulfill this type of request (in days)
36
- * NDPA requires response within 30 days
37
- */
38
- estimatedCompletionTime: number;
39
- /** Whether additional information is required for this request type */
40
- requiresAdditionalInfo: boolean;
41
- /** Custom fields required for this request type */
42
- additionalFields?: Array<{
43
- id: string;
44
- label: string;
45
- type: 'text' | 'textarea' | 'select' | 'checkbox' | 'file';
46
- options?: string[];
47
- required: boolean;
48
- placeholder?: string;
49
- }>;
50
- }
51
- /**
52
- * Legacy status of a data subject request
53
- * @deprecated Use DSRStatus instead
54
- */
55
- type RequestStatus = 'pending' | 'verifying' | 'processing' | 'completed' | 'rejected';
56
- /**
57
- * Represents a data subject request
58
- */
59
- interface DSRRequest {
60
- /** Unique identifier for the request */
61
- id: string;
62
- /** Type of request */
63
- type: DSRType;
64
- /** Current status of the request */
65
- status: DSRStatus;
66
- /** Timestamp when the request was submitted */
67
- createdAt: number;
68
- /** Timestamp when the request was last updated */
69
- updatedAt: number;
70
- /** Timestamp when the request was completed (if applicable) */
71
- completedAt?: number;
72
- /** Timestamp when the identity was verified (if applicable) */
73
- verifiedAt?: number;
74
- /**
75
- * Due date for responding to the request (timestamp)
76
- * NDPA requires response within 30 days of receipt
77
- */
78
- dueDate?: number;
79
- /** Description or details of the request */
80
- description?: string;
81
- /**
82
- * The lawful basis under which the data was originally processed
83
- * Relevant for evaluating objection and erasure requests
84
- */
85
- lawfulBasis?: string;
86
- /** Data subject information */
87
- subject: {
88
- name: string;
89
- email: string;
90
- phone?: string;
91
- identifierValue?: string;
92
- identifierType?: string;
93
- };
94
- /** Additional information provided by the data subject */
95
- additionalInfo?: Record<string, string | number | boolean | null>;
96
- /** Notes added by staff processing the request */
97
- internalNotes?: Array<{
98
- timestamp: number;
99
- author: string;
100
- note: string;
101
- }>;
102
- /** Verification status */
103
- verification?: {
104
- verified: boolean;
105
- method?: string;
106
- verifiedAt?: number;
107
- verifiedBy?: string;
108
- };
109
- /** Reason for rejection (if status is 'rejected') */
110
- rejectionReason?: string;
111
- /** Files attached to the request */
112
- attachments?: Array<{
113
- id: string;
114
- name: string;
115
- type: string;
116
- url: string;
117
- addedAt: number;
118
- }>;
119
- /**
120
- * Whether an extension was requested for this DSR
121
- * NDPA allows a one-time extension of 30 days with justification
122
- */
123
- extensionRequested?: boolean;
124
- /** Reason for the extension, if requested */
125
- extensionReason?: string;
126
- }
127
-
128
- export type { DSRRequest as D, RequestStatus as R, DSRStatus as a, DSRType as b, RequestType as c };